Переключаем режимы
Полный текст программы
const int buttonPin=2;
boolean lastButtonState = LOW;
boolean buttonState = LOW;
int RLED = 9;
int GLED = 10;
int BLED = 11;
int ledMode = 0;
void setup(){
Serial.begin(9600);
pinMode (buttonPin , INPUT);
pinMode(RLED, OUTPUT);
pinMode(GLED, OUTPUT);
pinMode(BLED, OUTPUT);
}
void setMode(int mode){
if (mode == 1){
digitalWrite(RLED, HIGH);
digitalWrite(GLED, LOW);
digitalWrite(BLED, LOW);
}else if (mode == 2){
digitalWrite(RLED, LOW);
digitalWrite(GLED, HIGH);
digitalWrite(BLED, LOW);
}else if (mode == 3){
digitalWrite(RLED, LOW);
digitalWrite(GLED, LOW);
digitalWrite(BLED, HIGH);
}else if (mode == 4){
analogWrite(RLED, 127);
analogWrite(GLED, 0);
analogWrite(BLED, 127);
}else if (mode == 5){
analogWrite(RLED, 0);
analogWrite(GLED, 127);
analogWrite(BLED, 127);
}else if (mode == 6){
analogWrite(RLED, 127);
analogWrite(GLED, 127);
analogWrite(BLED, 0);
}else if (mode == 7){
analogWrite(RLED, 85);
analogWrite(GLED, 85);
analogWrite(BLED, 85);
}else{
digitalWrite(RLED, LOW);
digitalWrite(GLED, LOW);
digitalWrite(BLED, LOW);
}
}
boolean debounce(boolean last){
boolean current = digitalRead(buttonPin );
if (last != current){
delay(3);
current = digitalRead(buttonPin );
return current;
}
}
void loop(){
buttonState = debounce(lastButtonState);
if (lastButtonState == LOW && buttonState == HIGH){
ledMode++;
if (ledMode == 8){
ledMode = 0;
}
setMode( ledMode );
}
lastButtonState = buttonState;
}
Заключение
Мы рассмотрели еще один тип светодиодов, RGB светодиоды и научились ими управлять с помощью кнопок и Ардуино. А в следующий раз попробуем запрограммировать кнопку более функционально.
Спасибо, что дочитали статью до конца.
Пожалуйста, подписывайтесь на блог в Одноклассниках.
Посмотрите больше уроков и проектов на сайте
arcadepub.ru
Спасибо за внимание, скоро увидимся.
Нет комментариев