For this week’s assignment, we are asked to use at least one analog input to control one LED and at least one digital input to control one LED. I haven’t added the sketch yet so I am going to come back and add that creative element later!
I had fun with the line graph displaying the knobValue before and after being mapped. I made the graph curve by rotating the potentiometer. Below are the graph and the video of that:
Testing the button (digital input) and the potentiometer (analog input):
This is the code (how to make it color-coded though?) (updated: oh! it is color-coded in the post but not right in the editing space)
const int ledPinYellow = 3;
const int ledPinGreen = 7;
const int ledPinBlue = 12;
const int buttonPin = 2;
int knobPin = A0;
int ledState = LOW;
int prevButtonState = LOW;
void setup() {
pinMode(ledPinYellow, OUTPUT);
pinMode(ledPinGreen, OUTPUT);
pinMode(ledPinBlue, OUTPUT);
pinMode(buttonPin, INPUT);
//pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop() {
int knobValue = analogRead(knobPin);
int mappedValue = map(knobValue, 0, 1023, 0, 255);
Serial.print(knobValue);
Serial.print(" ");
Serial.println(mappedValue);
analogWrite(ledPinYellow, mappedValue);
int currentButtonState = digitalRead(buttonPin);
if (currentButtonState == HIGH && prevButtonState == LOW) {
// flip the LED state
if (ledState == HIGH){
ledState = LOW;
} else if (ledState == LOW){
ledState = HIGH;
}
}
// if you want to print out the LED state
// Serial.print(ledState);
digitalWrite(ledPinGreen, ledState);
digitalWrite(ledPinBlue, !ledState);
//we need to remember the state of our button for the next time through LOOP
prevButtonState = currentButtonState;
}
