「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ
CALENDAR
2010年12月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
前月
翌月
Entry Archive
2025年02月
2025年01月
2024年12月
2024年11月
2024年10月
2024年09月
2024年08月
2024年07月
2024年06月
2024年05月
2024年04月
2024年03月
2024年02月
2024年01月
2023年12月
2023年11月
2023年10月
2023年09月
2023年08月
2023年07月
2023年06月
2023年05月
2023年04月
2023年03月
2023年02月
2023年01月
2022年12月
2022年11月
2022年10月
2022年09月
2022年08月
2022年07月
2022年06月
2022年05月
2022年04月
2022年03月
2022年02月
2022年01月
2021年12月
2021年11月
2021年10月
2021年09月
2021年08月
2021年07月
2021年06月
2021年05月
2021年04月
2021年03月
2021年02月
2021年01月
2020年12月
2020年11月
2020年10月
2020年09月
2020年08月
2020年07月
2020年06月
2020年05月
2020年04月
2020年03月
2020年02月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2018年02月
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
2016年10月
2016年09月
2016年08月
2016年07月
2016年06月
2016年05月
2016年04月
2016年03月
2016年02月
2016年01月
2015年12月
2015年11月
2015年10月
2015年09月
2015年08月
2015年07月
2015年06月
2015年05月
2015年04月
2015年03月
2015年02月
2015年01月
2014年12月
2014年11月
2014年10月
2014年09月
2014年08月
2014年07月
2014年06月
2014年05月
2014年04月
2014年03月
2014年02月
2014年01月
2013年12月
2013年11月
2013年10月
2013年09月
2013年08月
2013年07月
2013年06月
2013年05月
2013年04月
2013年03月
2013年02月
2013年01月
2012年12月
2012年11月
2012年10月
2012年09月
2012年08月
2012年07月
2012年06月
2012年05月
2012年04月
2012年03月
2012年02月
2012年01月
2011年12月
2011年11月
2011年10月
2011年09月
2011年08月
2011年07月
2011年06月
2011年05月
2011年04月
2011年03月
2011年02月
2011年01月
2010年12月
2010年11月
2010年10月
2010年09月
2010年08月
2010年07月
2010年06月
2010年05月
2010年04月
2010年03月
2010年02月
2010年01月
2009年12月
2009年11月
2009年10月
2009年09月
2009年08月
2009年07月
2009年06月
2009年05月
2009年04月
2009年03月
2009年02月
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
Recent Entry
ミカド行ってきた
イース8解いた
こないだのロボット
ロボット行ってきた
動作確認しておいた
こないだのロボット
急ぎでロボット行ってきた
届いた
物色中
スーファミのジャンク品を買った
Recent Comment
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan0/
レジ袋ホルダーを考える
フルタニアン/
レジ袋ホルダーを考える
Category
ノンジャンル
(2872)
PIC
(47)
AVR
(341)
Arduino
(448)
Raspberry Pi
(194)
mbed
(41)
ARM
(30)
ESP32
(15)
Android
(10)
OPアンプ
(125)
VHDL
(57)
PSoC
(4)
アナログ回路
(110)
クルマ
(127)
rails
(51)
本
(42)
導電塗料
(3)
Fritzing
(41)
Edison
(2)
FFT
(34)
写真
(158)
MIDI
(24)
その他日記
(11)
Python
(57)
3Dプリンタ
(124)
Bookmark
最初はgoo
goo blogトップ
スタッフブログ
My Profile
ブログID
nekosan0
自己紹介
Search
このブログ内で
ウェブ全て
MsTimer2割り込みとPWM出力ピン
Arduino
/
2010年12月12日
昨日考えていたことの裏取り実験。
(1)疑問その1
arduinoのMsTimer2ライブラリを使って1ms毎の
割り込みを利用しつつ、同時にPWM時の出力ピン
(OC2A、OC2B)から内蔵タイマーで生成した波形を
出力できるのかどうかってお話。
リクツから言えばできないことは無いと思うんだけど、
ライブラリソースの記述内容如何によっては支障が
出る可能性があるかも…と。
(2)疑問その2
ISP端子に圧電ブザーや圧電サウンダを取り付けたときに
ISP機能を阻害しないか。
で、実験の前にまず調査。
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240867372
こんなのが。あまり細かくは読んで無いんだけど、
delay関数との相性でトラブッているんだかいないんだか。
事実は良くわかんないけど、とりあえず既存機能と
相性悪そうなのはやっぱり「時間管理」関係の機能みたい。
で、昨日描いてた回路図を元に、OC2A端子からタイマー2
の波形を取り出してみることに挑戦。OC2A端子に圧電ブザー
を取り付けて、こんなスケッチを動かしてみる。
(例によって不等号記号は全角に変えてあります)
#include <MsTimer2.h>
// Switch on LED on pin 3 each second
// and buzz intermittently
void flash() {
static boolean output = HIGH;
digitalWrite(3, output);
output = !output;
}
void buzz_on() {
TCCR2A &= ~(1<<COM2A1);
TCCR2A |= (1<<COM2A0); //set ports togling when compare match
}
void buzz_off() {
TCCR2A &= ~(1<<COM2A0);
TCCR2A |= (1<<COM2A1); //set ports no togling when compare match
}
void setup() {
pinMode(3, OUTPUT);
pinMode(11, OUTPUT);
MsTimer2::set(500, flash); // 500ms period
buzz_on();
MsTimer2::start();
}
void loop() {
buzz_on();
delay(100);
buzz_off();
delay(300);
}
3番ピンに繋いだLEDを、MsTimer2ライブラリの割り込み
を使って0.5秒毎にトグル(点滅)させておき、LEDとは
シンクロさせずに0.4秒おきにブザーを鳴らすというスケッチ。
とりあえずうまくいきました。arduinoの基本機能や
ライブラリ間で齟齬はなさそう。
ちなみにブザーから音は出ますが、ピンから出力できる
のはデューティー比1:1の矩形波のみ。これはPWM出力を
使っていないため。一定周期おきにピン出力をトグル
させるというのがmegaシリーズの仕様。MsTimer2を使う
際の制約とった感じ。
さて、疑問(1)は無事クリア。次、(2)。
OC2A端子はISPのうちMOSI端子と重畳されているので、
OC2A端子に圧電ブザーを取り付けたままでISPができる
のかどうか…ってこと。
実際にAVR ISP mkII経由で接続してみた。
…通信でエラー出た。
ブザーを外してから接続するとエラー無し。
圧電ブザー自体はホントはほとんど電流を流さない
代物のはず(等価回路はコンデンサーっぽいモノ)。
なのにISPの通信がうまくできないのはなぜか?
直流抵抗は大きくても、コンデンサ成分の
アドミタンスが信号を通してしまっているってこと
なのかな…と。
ISPの信号を邪魔しない方法を考えてみる…。
OC2Aから10kΩの抵抗を介してブザーに繋いでみる。
(元々直流抵抗成分がデカく、電流がほとんど
流れていないので、これでも鳴るはず)
ISP周りを他の機能と重畳させるときには、
山根さん本
によるとたしか10kの抵抗を使えとあったので。
…音出た。山根さんの言うとおり。若干だけど音が
小さめ?それほど減衰はしてないので、充分ブザー
として役に立つレベル。
一方ISP通信のほうはというと、こっちも大丈夫。
良かった、良かった。
さて、最後の課題。圧電ブザー(他励式)の代わりに
圧電サウンダ(自励式)を接続してみる…。
10kΩ抵抗経由で繋ぐと音が出ない…だめだ。
結論。
圧電素子は、10kΩでOC2A端子に接続するとISPの機能
を阻害せずに、しかもタイマー機能で自動的に発振
させて音(矩形波)を出すことができる。しかし自励式
の圧電ブザーは駄目。
とりあえずそんなあたりが判ったので、これを元に
回路図の見直しだな。とりあえず前進。
圧電ブザー(他励式)でも圧電サウンダ(自励式)でも
動くようにしたかったんだけど、まぁそこはISPと
プログラムのし易さどちらを取るか…っていう選択だな。
コメント (
0
)
goo ブログ
ブログの作成・編集
gooおすすめリンク
おすすめブログ
【コメント募集中】「移住したい都道府県」はありますか?
@goo_blog
【お知らせ】
ブログを読むだけ。毎月の訪問日数に応じてポイント進呈
【コメント募集中】「移住したい都道府県」はありますか?
訪問者数に応じてdポイント最大1,000pt当たる!
dポイントが当たる!無料『毎日くじ』