· 

レールスプリッタ 6 (モニタ3)

Arduinoを使って、LCDの動作(配線)確認をします。作った回路通りにブレッドボードとジャンパーワイヤーで回路を作っていきます。ArduinoのPin番号とATmega328PのPin番号の対比は、googleでATmega328Pで検索すればゴロゴロ出てきます。

Arduinoで「ファイル」「スケッチ例」「LiquidCrystal」「HelloWorld」でひな型を開いて、ピン番号を変更していきます。Arduinoの例では固定値も変数として割り当てている(intとかで宣言している)のをよく見かけるけど、何となく#defineのほうが好きなので修正しました。

  1. /*
  2.  * LCD RS pin to digital pin 8
  3.  * LCD Enable pin to digital pin 10
  4.  * LCD D4 pin to digital pin 4
  5.  * LCD D5 pin to digital pin 5
  6.  * LCD D6 pin to digital pin 6
  7.  * LCD D7 pin to digital pin 7
  8.  * LCD R/W pin to pin 9
  9.  * LCD VSS pin to ground
  10.  * LCD VCC pin to 5V
  11.  * 10K resistor:
  12.  * ends to +5V and ground
  13.  * wiper to LCD VO pin (pin 3)
  14. */
  15. #define pinRS (8)
  16. #define pinE  (10)
  17. #define pinRW (9)
  18. #define pinD4 (4)
  19. #define pinD5 (5)
  20. #define pinD6 (6)
  21. #define pinD7 (7)
  22. // include the library code:
  23. #include <LiquidCrystal.h>
  24. // initialize the library by associating any needed LCD interface pin
  25. // with the arduino pin number it is connected to
  26. LiquidCrystal lcd(pinRS, pinE, pinD4, pinD5, pinD6, pinD7);
  27. void setup() {
  28.   pinMode(pinRW,OUTPUT);
  29.   digitalWrite(pinRW,LOW);
  30.   // set up the LCD's number of columns and rows:
  31.   lcd.begin(16, 2);
  32.   // Print a message to the LCD.
  33.   lcd.print("hello, world!");
  34. }
  35. void loop() {
  36.   // set the cursor to column 0, line 1
  37.   // (note: line 1 is the second row, since counting begins with 0):
  38.   lcd.setCursor(0, 1);
  39.   // print the number of seconds since reset:
  40.   lcd.print(millis() / 1000);
  41. }

うまくいきました。