Помогите пожалуйста с простым скетчем
- Войдите на сайт для отправки комментариев
Втр, 16/09/2014 - 20:24
Помогите пожалуйста. Пытаюсь освоить Arduino, а за одно и основы С.
Задача простая.
Есть светодиод подключенный к 9 ноге(ШИМ) и кнопка 2 нога.
Требуется по нажатию кнопки плавно зажечь светодиод, а по отпусканию потушить.
// задаем константы const int buttonPin = 2; // номер входа, подключенный к кнопке const int ledPin = 9; // номер выхода светодиода // переменные int buttonState = 0; // переменная для хранения состояния кнопки int volume; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); digitalWrite(buttonPin, HIGH); // включаем подтягивающий резистор volume = 0; } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == LOW && volume<100) { volume++; analogWrite(9, volume); delay(20); } else { volume=0; analogWrite(9, volume); } }
Не пойму почему светодиод зажигается и тухнет хотя кнопка нажата?
а где плавное уменьшение значения в переменной volume ??
где защита от переполнения переменной?
почему она int, когда достаточно byte?
Плавное уменьшение не делал по причине наглядности, "byte volume;" - каюсь не задумался.
Спасибо за помощь. Получилось так: