Home New Help Edit

Arduino使ってみる

Suns & Moon Laboratory


インストール

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()


レジスタ直叩き


#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.

サンプルがちょっとわかり辛いので単純化してみた。
オンボードLEDを500msec周期に点滅する。
#include <EveryTimerB.h> 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://garretlab.web.fc2.com/arduino_reference/language/functions/external_interrupts/attachInterrupt.html

VSCodeでArduino

VSCodeでArduino

Link

Arduino 日本語リファレンス

ボード選定メモ


何も考えないなら、Uno一択
最近はNano Everyかなとか思ってる。(2021)
キーボード作るならProMicro

XIAO RP2040

XIAO RP2040やってみる。

RasPiPicoメモ

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.

Home New Help Edit
2024-01-20 10:34:30 32400