「Arduino Mega 2560 LESSON:25 シリアルモニタ」の版間の差分
編集の要約なし |
編集の要約なし |
||
| 90行目: | 90行目: | ||
<freescript></script><div class="hljs-wrap"><pre data-label="Arduino Code" class="pre-wrap"> | <freescript></script><div class="hljs-wrap"><pre data-label="Arduino Code" class="pre-wrap"> | ||
<code class="cpp"> | <code class="cpp">//www.elegoo.com | ||
//2017.12.9 | |||
int latchPin = 11; | |||
int clockPin = 9; | |||
int dataPin = 12; | |||
byte leds = 0; | |||
void updateShiftRegister() | |||
{ | |||
digitalWrite(latchPin, LOW); | |||
shiftOut(dataPin, clockPin, LSBFIRST, leds); | |||
digitalWrite(latchPin, HIGH); | |||
} | |||
void setup() | |||
{ | |||
pinMode(latchPin, OUTPUT); | |||
pinMode(dataPin, OUTPUT); | |||
pinMode(clockPin, OUTPUT); | |||
updateShiftRegister(); | |||
Serial.begin(9600); | |||
while (! Serial); // Wait untilSerial is ready - Leonardo | |||
Serial.println("Enter LED Number 0 to 7 or 'x' to clear"); | |||
} | |||
void loop() | |||
{ | |||
if (Serial.available()) | |||
{ | |||
char ch = Serial.read(); | |||
if (ch >= '0' && ch <= '7') | |||
{ | |||
int led = ch - '0'; | |||
bitSet(leds, led); | |||
updateShiftRegister(); | |||
Serial.print("Turned on LED "); | |||
Serial.println(led); | |||
} | |||
if (ch == 'x') | |||
{ | |||
leds = 0; | |||
updateShiftRegister(); | |||
Serial.println("Cleared"); | |||
} | |||
} | |||
} | |||
</code></pre></div><script></freescript> | </code></pre></div><script></freescript> | ||
2026年11月6日 (金) 16:22時点における版
概要
74HC595 と8個の LEDを接続するレッスンの続きです。
完成図は以下のとおりです。
PCB図は以下のようなものです。
3Dプレビュー図は以下のようなものです。
コードは以下のようなものです。
//www.elegoo.com
//2017.12.9
int latchPin = 11;
int clockPin = 9;
int dataPin = 12;
byte leds = 0;
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
updateShiftRegister();
Serial.begin(9600);
while (! Serial); // Wait untilSerial is ready - Leonardo
Serial.println("Enter LED Number 0 to 7 or 'x' to clear");
}
void loop()
{
if (Serial.available())
{
char ch = Serial.read();
if (ch >= '0' && ch <= '7')
{
int led = ch - '0';
bitSet(leds, led);
updateShiftRegister();
Serial.print("Turned on LED ");
Serial.println(led);
}
if (ch == 'x')
{
leds = 0;
updateShiftRegister();
Serial.println("Cleared");
}
}
}