#arduino
#arduino
Вопрос:
Только что получил Arduino, и у меня возникли некоторые проблемы с освещением.
Я полагаю, что использую светодиод с общим анодом, поэтому у меня есть три цветных вывода, проходящих через резистор 270 Ом на 10, 11 и 12 на arduino. Последний подключен непосредственно к VSS.
Очень похоже на это:http://www.instructables.com/id/RGB-LED-Tutorial-using-an-Arduino-RGBL/step2/Testing /
Теперь он работает противоположно тому, что я бы предсказал. Когда я пишу analogWrite( red, 0 )
, светодиод горит красным, а 255 полностью выключает его.
Теперь настройка значения от 0-254 практически не регулирует яркость вообще. 255 полностью выключен после того, как он мигает в течение секунды.
Кто-нибудь может объяснить, что именно происходит?
Комментарии:
1. Хм… Вывод 12 не является выводом PWM на моем Arduino. Так что
analogWrite
для этого вывода будет работать не так, как ожидалось.
Ответ №1:
Ваш светодиод является общим анодом, поэтому он работает прямо противоположно общему катоду. Попробуйте это:
int PWM_value = xxx;
analogWrite(red, 255 - PWM_value);
Ответ №2:
КАК указывает А. Х., вывод 12 не является выводом PWM. Попробуйте изменить свой код, чтобы использовать контакты 9,10,11 вместо 10,11,12, и попробуйте еще раз.
Вот измененная версия образца документации, чтобы проиллюстрировать идею:
int rPin = 9;
int gPin = 10;
int bPin = 11;
int analogPin = 0; // potentiometer connected to analog pin 0
int val = 0; // variable to store the read value
void setup()
{
pinMode(rPin, OUTPUT); // sets the pin as output
pinMode(gPin, OUTPUT); // sets the pin as output
pinMode(bPin, OUTPUT); // sets the pin as output
}
void loop()
{
val = analogRead(analogPin); // read the input pin
analogWrite(rPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
analogWrite(gPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
analogWrite(bPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}
Обратите внимание, что для изменения значений светодиодов вам нужен датчик, подключенный к аналоговому выводу 0.