PIC
概要 PICの新16FシリーズからmTouchという静電容量式のタッチセンサ用モジュールが載り始め、タッチセンサが簡単に作れるようになったというので遅ればせながらちょっと試してみました。 基礎 新しいPIC16F(Enhanced Mid-Range PIC)にはCapacitive Sensing M…
前回のその4ではLEDを自動的に点滅させるプログラムを作りました。 今回はスイッチでLEDを点けたり消したりするプログラムを作ります。 回路 今回必要な部品は前回のLEDに加え、スイッチが必要となります。 LEDの接続ピンは前回同様PORTBの0番とし、追加する…
とりあえずマイコンというものを実際に動かしてみましょう。マイコン界では一番最初にやることとしてLEDを点滅させるという風習があるのでここでも従うことにします。 プログラミング まずは準備としてCドライブに演習用の「programming」というフォルダを作…
準備も終わったところで本題に入っていきましょう。 マイコンとは まずマイコンについて簡単な説明です。 fig1 : マイコン(PICマイコン) 「マイコン」はマイクロコントローラやマイクロコンピュータの略です。メーカによって前者と後者で使い分けていたり…
mikroCを使ってC言語でLED点滅の簡単なプログラムを書いてみたところDelay_ms()が指定通りに動かないという問題が発生しました。 以下がソースコードです。 void main() { ANSEL = 0x00; TRISA = 0x00; TRISB = 0x00; PORTA = 0x00; PORTB = 0x00; while(1) …
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セットずつ配布します。 内容はマイコン、書き込み器、センサ、表示器、その他の部品などで一通りいろいろなことが試せるようにしました。 PICkit2(3,500円) : 書き込み器…
同じ大学のB2の学生でマイコンをやってみたいという人が何人かいたので小規模にマイコン初心者教室を開催することにしました。 自分自身、他人に教えるということは初めてなのでこれを通じて自分もそういう面で何か得るものがあればと目論んでいます。 さら…
概要 前回コマンド方式サーボKRS-6003HVの制御 その2に続いてメモ3つ目。今回はmbedではなくPICで制御するように変更しました。PICへ変更と言っても単なるシリアル通信のためそんなに難しいことはありません。プログラムはmikroCを使いC言語で記述しました。…
今までPICはアセンブリで書いてましたがC言語でのプログラミングも試してみたくなったのでmikroCコンパイラを使ってみました。 PIC向けのCコンパイラはいくつかあります。有名所で言えばCCSのCコンパイラでしょうか。ただこれは有償なので今回はパス。 無償…
前々からやってみたかったキャラクタLCDの制御をPICでやってみました。Cコンパイラを使えばライブラリが用意されているので簡単にLCDの制御ができますが、今回はアセンブラで書いたので少し面倒でした。 "はじめてのPICアセンブラ入門(CQ出版)"で制御の手順…
PIC16F887で内蔵EEPROMへの読み書きができました。 といっても実作業はほとんどなしで、データシートに読み書き用の記述例があるからそのままそっくり持ってきただけですw サンプルと変えた部分は、 ・sleep命令の削除。今回はsleepしなくていい ・regとい…
USB-シリアル変換器を使い始めたらPICが電源OFF時でもなぜか動作していることが判明。かなり暗いがLEDも付いています。なんでなんでと思ってたら、どうもシリアル入力ピンから電源が供給されてなぜかPICが動作するらしい。調べてみると電流の回り込みという…
この前届いた加速度センサとUSB-シリアル変換器を使って加速度を測定してPCに送るプログラムを作ってみました。 左からPIC、加速度センサ、USB-シリアル変換器です。他にはセラロックや抵抗、パスコン、動作表示用のLEDなどがあります。 それぞれのデバイス…
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など…
PICへのICPSでの書き込み時はとりあえずこのピンだけ負荷から切り離すようにしておけば大丈夫なのかな?
※下の方に解決の追記ありこれまではPIC16F628AやPIC16F88で内臓のUSARTモジュールを使ってシリアル通信をしてきました。 今回新たにPIC16F887でシリアル通信を行おうと上記2機種と同様の設定を行ったところ、送受信ともにうまくいかない。あれ? 1日中あれ…
マイコンの割り込みの便利さに今更気付きました(;^ω^)なんだか面倒だし処理を途中で止めるのってなんか嫌だし・・・と今まで食わず嫌いしてましたw今回はシリアル通信で信号を受信した時に割り込みがかかるというようなプログラムを作ってみました プ…
とりあえず割と正確な音程が出せるようになってきました。
いろいろな音程の音を鳴らすルーチンを作り、それを次々と呼び出すことでメロディ(といってもしょぼいですがw)の演奏に成功しました。ちなみにレジスタの値によってテンポも変更できるようにしてみました。 16分音符の長さの音を鳴らすだけで結構行数食…
開発環境についてちょっと触れておこうと思ったので書いてみます。 PICを使うにあたって、統合環境は定番のMPLAB IDEを使っています。Cでプログラムを書いたことはまだありません。アセンブラいいよアセンブラ(*´Д`) PICへの書き込みにはPICkit2を使ってい…
昨日なかなか苦労していた7セグLEDの制御が割とうまくいきました。100秒のカウントダウンタイマーを作ろうとしたところ昨日の考え方では21行×100秒で2100行ものプログラムが必要でしたが、改良を行ったところ1/5ほどの行数で同じことができるよ…
※左の2桁のみを使用しています。この基板自体は以前こちらの時計を作ろうと思って作ったものです。この時はプログラムを完全コピーしたため、自分では何もしませんでした。 かなりの突貫工事でしたが、7セグLEDで2桁の数字のダイナミック制御ができました…
PICの初心者として次にやりたいことは外部への情報の表示! というわけで、PICで使いたい表示器としてはLCDと並んで定番だと思われる7セグLEDを駆動しようとしています。 他の方のサイトからソースもらってくればいいじゃん!と言われればそこまでなのです…
前回の続き。今度はPICでモーターを回してみます。 一番右上のICがRS232CのレベルとTTLレベルを変換してくれています。その下にあるのがPIC16F88です。 波形 お粗末な作りのモーター駆動回路 仕様 ・シリアル通信で1〜126の数値を受信 ・受信したデータ…