arduino
*Arduino使ってみる [[index]] #contents **インストール 2013-08-05 これ見ながら [[http://arduino.cc/en/Guide/Windows]] arduino-1.0.5-windows.zip をダウンロード [[http://arduino.cc/en/Main/Software]] 解凍して適当な場所に配置 >C:\tools\bin\arduino-1.0.5 スケッチはここに入る >C:\Users\ユーザー名\Documents\Arduino\ インポートしたライブラリはここに入る。手動でコピー・削除して良い。 丸ごと削除しても、自動で復活する。 >C:\Users\ユーザー名\Documents\Arduino\libraries\ arduino.exeを実行して起動。 Windows7 64bitは、最初ドライバー入れても書込みが最後まで終了しなかった。 USBを抜き差ししたら、それ以降はちゃんと動くようになった。 WindowsXP 32bitは、あっさり動いた。 **Library ***map [[https://www.arduino.cc/reference/en/language/functions/math/map/]] **使う ツール→マイコンボード→ボード選択 ファイル→スケッチブック→スケッチを選択すると、スケッチを読み込む ツールバーの「○+レ」で、コンパイル ツールバーの「○+→」でボードに書込み **LED(基板上に搭載) 下記マクロで定義されている(ビルトイン、オンボード) >LED_BUILTIN **Arduino Nano Every [[https://ht-deko.com/arduino/nano_every.html]] ***IO速度 digitalWriteで1.2usec レジスタ直叩きで0.13usec digitalWrite() &img(nanoevery_io_speed_dw.png); レジスタ直叩き &img(nanoevery_io_speed_reg.png); > #define PIN_SCLK 15 > > void setup() { > pinMode(PIN_SCLK, OUTPUT); > } > > void loop() { > #if 0 > PORTD_OUTSET = 0x04; > PORTD_OUTCLR = 0x04; > PORTD_OUTSET = 0x04; > PORTD_OUTCLR = 0x04; > PORTD_OUTSET = 0x04; > PORTD_OUTCLR = 0x04; > PORTD_OUTSET = 0x04; > PORTD_OUTCLR = 0x04; > #endif > digitalWrite(PIN_SCLK,HIGH); > digitalWrite(PIN_SCLK,LOW); > digitalWrite(PIN_SCLK,HIGH); > digitalWrite(PIN_SCLK,LOW); > digitalWrite(PIN_SCLK,HIGH); > digitalWrite(PIN_SCLK,LOW); > digitalWrite(PIN_SCLK,HIGH); > digitalWrite(PIN_SCLK,LOW); > } ***タイマー ArduinoIDE2.2.1 Arduino megaAVR Boards 1.8.8 NanoEveryは、TCAx1,TCBx4存在する。 TCBを使うライブラリを探したところこちらがヒット [[Arduino EveryTimerB library.>https://github.com/Kees-van-der-Oord/Arduino-Nano-Every-Timer-Controller-B]] サンプルがちょっとわかり辛いので単純化してみた。 オンボードLEDを500msec周期に点滅する。 > #include
> > EveryTimerB TimerB1; > > #define PIN_LED 13 > > bool led_flag = false; > > void myisr(void) > { > digitalWrite(PIN_LED, led_flag); > led_flag = !led_flag; > } > > // code timer B1 > ISR(TCB1_INT_vect) > { > TimerB1.next_tick();//attachInterrupt()で登録した割り込みルーチンが呼ばれる > TCB1.INTFLAGS = TCB_CAPT_bm; // writing to the INTFLAGS register clears the interrupt request flag > } > > void setup() { > pinMode(PIN_LED, OUTPUT); > > TimerB1.initialize(&TCB1); > TimerB1.stop(); > TimerB1.attachInterrupt(myisr); > TimerB1.setPeriod(500000UL);//usecで指定する。左の場合0.5秒。初期値は1秒になっている。 > } > > void loop() { > } 辿ったのはここから [[2020/9/25 無題>https://brown.ap.teacup.com/nekosan0/4349.html]] **ピン割り込み えぇ、凄く簡単すぎた [[https://garretlab.web.fc2.com/arduino_reference/language/functions/external_interrupts/attachInterrupt.html]] **VSCodeでArduino [[vscode_arduino]] **Link [[Arduino 日本語リファレンス>http://www.musashinodenpa.com/arduino/ref/]] **ボード選定メモ 何も考えないなら、Uno一択 最近はNano Everyかなとか思ってる。(2021) キーボード作るならProMicro **XIAO RP2040 XIAO RP2040やってみる。 [[pipico]] **XIAO BLE nrf52840 ***Seeedのボードライブラリ 基本はWiKiを見る [[https://wiki.seeedstudio.com/XIAO_BLE/]] ▼ ボードマネージャで、Seeed nrf52 Boardsを入れる ▼ 以下略 ***Adafruitのボードライブラリ [[https://learn.adafruit.com/introducing-the-adafruit-nrf52840-feather/arduino-bsp-setup]] end.
2025-01-29 09:09:56 32400