Адаптировать схему к набору ArduinoStart!
Набор:
Кнопка, светодиод, резистор (10 кОм)
Программа. Светодиод горит при нажатой кнопке
// переменные с пинами подключенных устройств
int switchPin = 8;
int ledPin = 13;
void setup() {pinMode(switchPin, INPUT);
pinMode (ledPin, OUTPUT);
}
void loop()
{ // включаем светодиод при нажатой кнопке
if(digitalRead(switchPin) == HIGH) { digitalWrite(ledPin, HIGH);
} else {digitalWrite(ledPin, LOW);
} }
Объявляем переменные со значениями пинов к которым у нас подключены кнопка и светодиод. Далее в функции setup() мы обозначаем какой пин используется как вход, а какой как выход. В функции loop() мы используем условный оператор if с оператором сравнения и проверяем приходит ли на пин 8 высокий сигнал. Если да то включаем светодиод, если нет то выключаем.
Теперь светодиод подключен к 11 пину Arduino, которой умеет делать ШИМ. Добавим токоограничивающий резистор на 220 Ом перед светодиодом, что бы его не спалить. Это необходимо потому, что светодиоды работают при напряжении 3.3 В, а пин ардуино отдает 5 В.
// переменные с пинами подключенных устройств
int switchPin = 8;
int ledPin = 11;
// переменные для хранения состояния кнопки и светодиода
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledLevel = 0;
void setup() { pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
}
// функция для подавления дребезга
boolean debounse(boolean last) { boolean current = digitalRead(switchPin);
if(last != current) { delay(5);
current = digitalRead(switchPin);
} return current;
}
void loop() { currentButton = debounse(lastButton);
if(lastButton == LOW && currentButton == HIGH) { ledLevel = ledLevel + 51;
} lastButton = currentButton;
if(ledLevel > 255) ledLevel = 0;
analogWrite(ledPin, ledLevel);
}