Arduino

シリアルモニタからLEDの明るさを変更してみる

2020年6月2日

こんばんは!

今回はシリアルモニタからLEDの明るさを変更できるプログラムを作成したので共有したいと思います。

シリアル通信で受け取った値を数値として扱うためのプログラムの例として参考になると思います。

使用するもの

・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・LED(https://amzn.to/2TvEPGc)

作成したプログラム

今回作成したプログラムになります。

Arduinoのシリアル通信は文字列でやり取りを行っています。

Serial.readStringUntilは末端の文字を指定して、その位置までの文字を読み取ります。今回の'\n'はenterを表しています。

シリアルモニタで「120」のように入力したとしても、それは120という数字ではなく1と2と0が連結した文字列(ASCII文字)として処理されています。

serialStringToInt関数でシリアル通信で受け取った文字列を数値に変換するための処理を行っています。

0~9のASCII文字は0x30~0x39なので、入力された数字から0x30を引いた値が0~9となります。

 

アナログ出力は0~255の間ですが、map関数を使用すれば範囲を変えることができます。

map関数で0~10までの値を0~255までに拡大しています。

参考にしたサイト

https://qiita.com/e-katayama/items/338065a1b3d52b173c2d

https://blog.ase.co.jp/2017/11/21/pow%E9%96%A2%E6%95%B0%E7%B5%A1%E3%81%BF%E3%81%A7%E7%99%BA%E7%94%9F%E3%81%97%E3%81%9F%E4%B8%8D%E5%85%B7%E5%90%88%E3%81%A8%E5%8E%9F%E5%9B%A0/#2.%E4%BB%8A%E5%9B%9E%E9%81%AD%E9%81%87%E3%81%97%E3%81%9F

http://www3.nit.ac.jp/~tamura/ex2/ascii.html

-Arduino

Copyright© 物を作る者 , 2024 All Rights Reserved.