Для создания Arduino проекта нам понадобится:
- плата Arduino;
- Кнопка (из набора Sensor Kit for Arduino)
- RGB светодиод (из набора Sensor Kit for Arduino);
- монтажные провода - 7 шт.;
- плата для монтажа без пайки.
В данном проекте в качестве платы Arduino будем использовать Arduino UNO.
RGB светодиод из набора Sensor Kit for Arduino. Отличительные особенности этого RGB светодиода в том, что на плате светодиода установлены резисторы на 1 кОм.
Кнопка из набора Sensor Kit for Arduino. Отличительные особенности кнопки в том что на плате установлен подтягивающий к земле резистор на 10 кОм. У этой кнопки перепутаны вывода на + 5 В и GND, возможно в более новых наборах это исправлено
Схема подключения следующая:
Запустим ArduinoIDE:
Вставим следующий код в ArduinoIDE и загрузим (комбинация клавиш Ctrl + U) его на плату (если у вас возникли ошибки при загрузке прочтите следующее):
int ledR = 11;
int ledG = 10;
int ledB = 9;
int button = 8;
// переменные
int Counter = 0; // счётчик нажатия кнопки
int State = 0; // текущее состояние кнопки
int lastState = 0; // предыдущее состояние кнопки
void setup() {
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(button, INPUT);
}
void loop() {
// считываем значения с входа кнопки
State = digitalRead(button);
// если значение превысет 3 обнуляем
if(Counter > 3){
Counter = 0;
}
// сравниваем состояние с предыдущим состоянием
if (State != lastState) {
// если состояние изменилось, увеличиваем счётчик
if (State == HIGH) {
// если текущее состояние HIGH, значит кнопка включена
Counter++;
} else {
// если текущее состояние LOW, значит кнопка выключена
}
// небольшая задержка для устранения эффекта дребезга
delay(50);
}
// сохраняем текущее состояние как последнее состояние для
следующего раза
lastState = State;
// включаем светодиод
if (Counter == 1) {
// Красный
digitalWrite(ledR, HIGH); // ВКЛ
}
else if (Counter == 2) {
// Зеленый
digitalWrite(ledG, HIGH); // ВКЛ
}
else if (Counter == 3) {
// Синий
digitalWrite(ledB, HIGH); // ВКЛ
}
else {
digitalWrite(ledR, LOW); // ВЫКЛ
digitalWrite(ledG, LOW); // ВЫКЛ
digitalWrite(ledB, LOW); // ВЫКЛ
}
}
После того как программа загрузиться на плату нажимаем кнопку.
В результате нажатия светодиод будет загораться разными цветами: после первого нажатия загорится красный, второго — зеленым, третьего — синим, и так по кругу.