PIC

PIC新16Fのタッチセンサ(mTouch)を使ってみた

PIC

概要 PICの新16FシリーズからmTouchという静電容量式のタッチセンサ用モジュールが載り始め、タッチセンサが簡単に作れるようになったというので遅ればせながらちょっと試してみました。 基礎 新しいPIC16F(Enhanced Mid-Range PIC)にはCapacitive Sensing M…

マイコン初心者講座その5 スイッチでLEDを制御する

前回のその4ではLEDを自動的に点滅させるプログラムを作りました。 今回はスイッチでLEDを点けたり消したりするプログラムを作ります。 回路 今回必要な部品は前回のLEDに加え、スイッチが必要となります。 LEDの接続ピンは前回同様PORTBの0番とし、追加する…

マイコン初心者講座その4 LEDを点滅させてみる

とりあえずマイコンというものを実際に動かしてみましょう。マイコン界では一番最初にやることとしてLEDを点滅させるという風習があるのでここでも従うことにします。 プログラミング まずは準備としてCドライブに演習用の「programming」というフォルダを作…

マイコン初心者講座その3 マイコンで何ができる?

準備も終わったところで本題に入っていきましょう。 マイコンとは まずマイコンについて簡単な説明です。 fig1 : マイコン(PICマイコン) 「マイコン」はマイクロコントローラやマイクロコンピュータの略です。メーカによって前者と後者で使い分けていたり…

内蔵発振器を使うときはOSCCONの設定を忘れずに

PIC

mikroCを使ってC言語でLED点滅の簡単なプログラムを書いてみたところDelay_ms()が指定通りに動かないという問題が発生しました。 以下がソースコードです。 void main() { ANSEL = 0x00; TRISA = 0x00; TRISB = 0x00; PORTA = 0x00; PORTB = 0x00; while(1) …

マイコン初心者講座その2 必要なソフトのインストール(mikroC PRO for PICとPICkit2 Programmer)

PICのプログラムを作り、それをPICに書き込むために使うソフトのインストール方法です。ここではmikroC PRO for PICとPICkit2 Programmerの2つのソフトのインストールを行います。いずれも無償で入手可能ですが日本語版は無いのであしからず。 mikroC PRO fo…

マイコン初心者講座 目次

マイコン初心者講座その5 スイッチでLEDを制御する http://d.hatena.ne.jp/rinie/20110523/1306135438 マイコン初心者講座その4 LEDを点滅させてみる http://d.hatena.ne.jp/rinie/20110517/1305632077 マイコン初心者講座その3 マイコンで何ができる? http…

マイコン初心者講座その1 必要な部品・機器の準備

マイコン初心者講座の教材として秋月電子通商で以下のようなものを揃えました。1人に1セットずつ配布します。 内容はマイコン、書き込み器、センサ、表示器、その他の部品などで一通りいろいろなことが試せるようにしました。 PICkit2(3,500円) : 書き込み器…

マイコン初心者講座始めます

同じ大学のB2の学生でマイコンをやってみたいという人が何人かいたので小規模にマイコン初心者教室を開催することにしました。 自分自身、他人に教えるということは初めてなのでこれを通じて自分もそういう面で何か得るものがあればと目論んでいます。 さら…

コマンド方式サーボKRS-6003HVの制御 その3

PIC

概要 前回コマンド方式サーボKRS-6003HVの制御 その2に続いてメモ3つ目。今回はmbedではなくPICで制御するように変更しました。PICへ変更と言っても単なるシリアル通信のためそんなに難しいことはありません。プログラムはmikroCを使いC言語で記述しました。…

mikroCでPICのプログラミングをしてみる(環境導入とLCDでHello World!)

PIC

今までPICはアセンブリで書いてましたがC言語でのプログラミングも試してみたくなったのでmikroCコンパイラを使ってみました。 PIC向けのCコンパイラはいくつかあります。有名所で言えばCCSのCコンパイラでしょうか。ただこれは有償なので今回はパス。 無償…

PICでキャラクタ液晶制御

PIC

前々からやってみたかったキャラクタLCDの制御をPICでやってみました。Cコンパイラを使えばライブラリが用意されているので簡単にLCDの制御ができますが、今回はアセンブラで書いたので少し面倒でした。 "はじめてのPICアセンブラ入門(CQ出版)"で制御の手順…

PIC内蔵EEPROMへのアクセス

PIC

PIC16F887で内蔵EEPROMへの読み書きができました。 といっても実作業はほとんどなしで、データシートに読み書き用の記述例があるからそのままそっくり持ってきただけですw サンプルと変えた部分は、 ・sleep命令の削除。今回はsleepしなくていい ・regとい…

電流の回り込み?

PIC

USB-シリアル変換器を使い始めたらPICが電源OFF時でもなぜか動作していることが判明。かなり暗いがLEDも付いています。なんでなんでと思ってたら、どうもシリアル入力ピンから電源が供給されてなぜかPICが動作するらしい。調べてみると電流の回り込みという…

加速度センサを使ってみる

PIC

この前届いた加速度センサとUSB-シリアル変換器を使って加速度を測定してPCに送るプログラムを作ってみました。 左からPIC、加速度センサ、USB-シリアル変換器です。他にはセラロックや抵抗、パスコン、動作表示用のLEDなどがあります。 それぞれのデバイス…

ルックアップテーブル

PIC

PICでテーブルジャンプを使おうとしたら動作がおかしくなってしまいました。 second_table call wait_10ms movfw rc_time addwf PCL,f goto s00 goto s01 goto s02 goto s03 goto s04 そこでいろいろなサイトで調べてみた結果、org擬似命令で0x300や400など…

pickit2でICPSで書き込むときにICSPCLK/PGCピンに負荷を繋ぐと書き込みに失敗する

PIC

PICへのICPSでの書き込み時はとりあえずこのピンだけ負荷から切り離すようにしておけば大丈夫なのかな?

PIC16F887のシリアル通信の謎? → 解決

PIC

※下の方に解決の追記ありこれまではPIC16F628AやPIC16F88で内臓のUSARTモジュールを使ってシリアル通信をしてきました。 今回新たにPIC16F887でシリアル通信を行おうと上記2機種と同様の設定を行ったところ、送受信ともにうまくいかない。あれ? 1日中あれ…

割り込み処理って便利だ!

PIC

マイコンの割り込みの便利さに今更気付きました(;^ω^)なんだか面倒だし処理を途中で止めるのってなんか嫌だし・・・と今まで食わず嫌いしてましたw今回はシリアル通信で信号を受信した時に割り込みがかかるというようなプログラムを作ってみました プ…

今度はPIC+圧電スピーカーで音を鳴らす

PIC

とりあえず割と正確な音程が出せるようになってきました。

PICを使ってメロディを奏でる

PIC

いろいろな音程の音を鳴らすルーチンを作り、それを次々と呼び出すことでメロディ(といってもしょぼいですがw)の演奏に成功しました。ちなみにレジスタの値によってテンポも変更できるようにしてみました。 16分音符の長さの音を鳴らすだけで結構行数食…

PICの開発環境紹介

PIC

開発環境についてちょっと触れておこうと思ったので書いてみます。 PICを使うにあたって、統合環境は定番のMPLAB IDEを使っています。Cでプログラムを書いたことはまだありません。アセンブラいいよアセンブラ(*´Д`) PICへの書き込みにはPICkit2を使ってい…

PICで7セグLEDタイマーっぽいの完成

PIC

昨日なかなか苦労していた7セグLEDの制御が割とうまくいきました。100秒のカウントダウンタイマーを作ろうとしたところ昨日の考え方では21行×100秒で2100行ものプログラムが必要でしたが、改良を行ったところ1/5ほどの行数で同じことができるよ…

荒っぽいけどとりあえず7セグLEDでカウントダウン成功

※左の2桁のみを使用しています。この基板自体は以前こちらの時計を作ろうと思って作ったものです。この時はプログラムを完全コピーしたため、自分では何もしませんでした。 かなりの突貫工事でしたが、7セグLEDで2桁の数字のダイナミック制御ができました…

7セグLEDを制御したい

PICの初心者として次にやりたいことは外部への情報の表示! というわけで、PICで使いたい表示器としてはLCDと並んで定番だと思われる7セグLEDを駆動しようとしています。 他の方のサイトからソースもらってくればいいじゃん!と言われればそこまでなのです…

シリアル通信で信号を受信してモーターを回してみる

前回の続き。今度はPICでモーターを回してみます。 一番右上のICがRS232CのレベルとTTLレベルを変換してくれています。その下にあるのがPIC16F88です。 波形 お粗末な作りのモーター駆動回路 仕様 ・シリアル通信で1〜126の数値を受信 ・受信したデータ…