忍者ブログ
  • 2024.10
  • 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
  • 2024.12
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/11/24 18:03 】 |
arduinoのPWM周波数変更
arduinoでPWMの周波数を変える方法について

A0でDuty比、A1で周波数を変化させます。
出力はD10にしました。
参考までにソースコードを末尾に載せます。(D10の出力固定です。動作保証はしません)
細かい設定については参考先参照願います。
データシート読むの苦手です。

TCCR0はタイマのカウントにも使用していて
TCCR2は周期を細かく変えるのに向いてないみたいなので、
TCCR1(D9,D10ピン)を使用することにしました。

参考:
ATMEGA328Pのデータシート
日々 ほげほげ 研究所
garret lab

作成したプログラム


/*
2016/10/10
D10の出力周波数・Dutyを変化させる
(20kHz, 24%設定)
A0、A1の値で周波数・Dutyを変化させる予定
*/

int Vol_duty = A0; //
int Vol_freq = A1; //
int PWMPin = 10; // select the pin for PWM
int ledPin = 13; // select the pin for the LED
int Value_duty = 0; //
int Value_freq = 0; //
int u = 0; //

void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
pinMode(ledPin, OUTPUT);

// シリアルポートを9600 bps[ビット/秒]で初期化
Serial.begin(9600);

//f=fc/(2*TOP*r) ( fc = 16MHz )
//Show Table 16-4. Waveform Generation Mode Bit Description
TCCR1A &= B11111100;
TCCR1A |= B00000001;//
TCCR1B &= B11100111;
TCCR1B |= B00010000;//
//Show Table 16-5. Clock Select Bit Description
//value of r, 1 8 64 256 1024
TCCR1B &= B11111000;
TCCR1B |= B00010010;// 8分周
//Value of TOP
OCR1A = 50; //change freq
}

void monitor(){
Serial.println("Check values");
Serial.println(TCCR1A,BIN);//COM1A1 COM1A0 COM1B1 COM1B0 – – WGM11 WGM10
Serial.println(TCCR1B,BIN);//ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10
Serial.println(OCR1A,BIN);//value of TOP
Serial.println(OCR1B,BIN);//PWM on value
Serial.println("u");
Serial.println(u);
// Serial.println(OCR2B,BIN);
}
void change_reg(){
u = Value_freq * 20;
if( u > 3900 ){
TCCR1B &= B11100000;
TCCR1B |= B00010010;// 8分周
OCR1A = 1000000/u;
} else {
TCCR1B &= B11100000;
TCCR1B |= B00010011;// 64分周
OCR1A = 125000/u;
}

}
void loop() {
// read the value from the sensor:
Value_duty = analogRead(Vol_duty) >> 2; //0~255;
// Value_freq = analogRead(Vol_freq); //100 ~ 20000[Hz]
// turn the ledPin on
digitalWrite(ledPin, HIGH);
// stop the program for milliseconds:
delay(50);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for milliseconds:
delay(50);

if(Value_freq == 1000) Value_freq = 0;
Value_freq += 5; //chenge freq 
if(Value_freq > 1000) Value_freq = 1000; //20kHz相当
if(Value_freq < 50) Value_freq = 50; //1kHz相当

change_reg(); //change OCR1A, TCCR1B

Value_duty = OCR1A >> 1; //50%
analogWrite(PWMPin,Value_duty);

monitor(); //debug用
}

PR
【2016/10/10 22:42 】 | arduino_uno | 有り難いご意見(0)
HICTOP prusa i3 その2 テスト印刷
印刷テスト時に引っかかった問題について
①エクスクルーダ用モータが逆転して、フィラメントが抜けてしまう。
⇒この状態になる場合、LCDの表示が文字化けするので、正しくデータが転送できてないのかな。
データ保存時の文字コードが影響してるのでしょうか?
もしくは数値の桁があってないとか?

②一層目がつかない、またはベッドをこする
⇒原点の位置合わせがうまくできていなかった。

③Y軸のベルト固定のねじが外れる
⇒振動がひどい。Y軸関係は接着剤も併用して固定しました。

①は全く解決してないけど印刷できるようになりました。


あと彼岸花の球根買いました。
百均で鉢と土を買って合計400円かかっています。
適当に植えたけど咲くといいなあ。
【2016/08/08 00:04 】 | 3Dプリンタ | 有り難いご意見(0)
HICTOP prusa i3
友人から借りていた3Dプリンタを返してしまったので買いました。
組み立ててて詰まったところがあったので、備忘録として。

組立時に詰まった(困った)こと:
①座標リセット用SWのコネクタがオスメス一致していない。
②取説にZ軸リセットSWの取り付け方が書いていない。
③電源の固定用のねじ穴位置は説明書と違った。


コネクタの返しがあっていないのでそれをカッターで削り、
差し込み位置は動画で確認(下URLの9:09時の配線状態から)
https://www.youtube.com/watch?v=jTtfS0-CVl0
間違えるとSWオン時に5V-GNDショートになるので、動かないし回路に悪そう


同動画の16:15付近に映っていたので、それを参考にしました。
12:05の前後を参考にしています。
今回購入したのが、自動調整機能付きということで、近接SWを使用するので、
木の部品があまるっぽいです。


これ説明書のM3x5じゃなくてM4側のねじ穴で止めれますね。

5万円で買ったので、デアゴスティーニのやつよりお得なのかな。
あっちの性能は知りませんが。

良かった点:3Dプリンタの構造を理解することができた。
反省点:組立済みを買えばよかった。

【2016/08/06 15:10 】 | 3Dプリンタ | 有り難いご意見(0)
センシング回路
ちょっとやりたいことがあり、回路について勉強中です。
備忘録として、参考にしているページの列挙します。

・TGS2450
においセンサ
米原市柏原においセンサー
arduino@wiki

・LPS25H
大気圧センサ
Arduinoで実験(SPIデバイス)
きむ茶工房ガレージハウス

・MIDI
LIBRE MUSIC PRODUCTION

・タッチセンサ
建築発明工作ゼミ
【2016/02/01 01:18 】 | arduino_uno | 有り難いご意見(0)
簡易ギターアンプ
簡易でいいから音声信号確認用のアンプがほしくて、簡単なものを作りました。

NJM5532が低雑音アンプっぽいからそれで作ってみたら、
ドライブ能力が低いらしく、増幅比が低いです。(2倍)
あとこのアンプを通すと低音が出てないような気がします。
とりあえず手元のイヤホンでは聞けるから良しとします。

簡易のギターアンプはLM386Nを使ったものがあるみたいです。
THE386アンプ

必要になったら再挑戦しましょう。
以下回路図と外観です。



【2016/01/24 17:41 】 | 回路 | 有り難いご意見(0)
<<前ページ | ホーム | 次ページ>>