Hey all – below you’ll find my code & videos from Arduino Lesson #3.
Let’s start with the simple ones.
Digital Input – Button
Wahoo – the button! I followed the steps in the tutorial to change the code to have the LED start at OFF instead of ON – this is a video of that.
Serial Monitor
This one was pretty cool to me. It’s like my laptop and Arduino board were having a chat with each other – but I was the mediator.
Turn LED On/Off with 2 Buttons
Writing my own code was definitely a bit challenging at first. Although I have some experience with front-end web dev, I was never particularly good at Javascript (and I find Arduino code to be quite similar to Javascript with if/else functions, etc.). I used some of the existing Arduino examples as guides just to make sure I had the logic down.
During my first go, I had a ton of errors, due to omitted semicolons (ugh!). I added them back in and everything was fine and dandy—except the buttonON state worked, but the buttonOFF state did not.
For the longest time, I couldn’t figure out what was wrong with my code. Everything made sense. Turns out…nothing was wrong with my code. I had forgotten a wire on my breadboard 😖 But I fixed it!
Here’s the video:
And here’s the code:
//Two Buttons ON/OFF with 1 LED
//CONSTANTS
const int buttonOn = 3; //the number of the ON pushbutton pin
const int buttonOff = 5; //the number of the OFF pushbutton pin
const int ledPin = 12; //the number of the LED pin
//VARIABLES
int buttonState1 = 0; //variable for reading the pushbutton status
int buttonState2 = 1; //other variable for reading status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the ON and OFF pushbutton pins as inputs:
pinMode(buttonOn, INPUT);
pinMode(buttonOff, INPUT);
}
void loop() {
// read state of the pushbutton value:
buttonState1 = digitalRead(buttonOn);
buttonState2 = digitalRead(buttonOff);
//check if pushbutton is pressed.
//if it is, the buttonState is HIGH:
if (buttonState1 == LOW) {
//turn LED on:
digitalWrite(ledPin, HIGH);
}
if (buttonState2 == LOW) {
//turn LED off:
digitalWrite(ledPin, LOW);
}
}
Side note: I think I definitely need to trim my resistors. They are getting quite cumbersome as we add more fun things each week.
Feel free to trim your resistors shorter! You learned a valuable prototyping lesson this week (check your code AND wiring because problems could be from each). Nice work!