Официальный сайт компании Arduino по адресу arduino.cc
Странно работает аналог
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пнд, 06/04/2015 - 20:41
Добрый вечер, уважаемые.
Первый вечер ковыряю ардуино и вот наткнулся на такой глюк.
Простая программка мигания трехцветным диодом:
int ledGreen = 10; int ledBlue = 7; int ledRed = 9; void setup() { pinMode(ledGreen, OUTPUT); pinMode(ledRed, OUTPUT); pinMode(ledBlue, OUTPUT); } void blink(int aLed) { digitalWrite(aLed, HIGH); delay(500); digitalWrite(aLed, LOW); delay(1); } void loop() { blink(ledRed); delay(10); blink(ledGreen); delay(10); blink(ledBlue); delay(10); }
Все мигает, все хорошо.
Переписал функцию blink вот так (чтобы плавно загоралось)
void blink(int aLed) { for(int i=0; i<50; i++) { analogWrite(aLed, i); delay(10); } delay(500); digitalWrite(aLed, LOW); delay(1); }
Странно работает: красный и зеленый плавно загораются как и должны, а сильный вообще не горит.
В чем может быть дело, не пойму?
P.S. Freeduino Leanardo, питание от USB, если это важно.
Все, разобрался. 7 выход - только цифровой. Там нет ШИМа :-)
Переделал на 11-ый - все замигало.
int
ledGreen = 10; - хватит и
byte
ledGreen = 10; , зачем память тратить ?
Хватит и #define ledgreen 10 , зачем вообще переменную заводить....
Развращен C# и десктопами. Все впереди.
Хватит и #define ledgreen 10 , зачем вообще переменную заводить....
эт, даааа.... а она будет запихуема в
void
blink(
int
aLed) ?
Хватит и #define ledgreen 10 , зачем вообще переменную заводить....
эт, даааа.... а она будет запихуема в
void
blink(
int
aLed) ?
Запихуема. Только что проверил. Кстати, void blink(char aLed), если уж на то пошло ;-)
Ну тогда и сразу for ( char i=0 ; i<50 ; i++) можно попробовать......
Или for ( byte i=0 ; i<50 ; i++)
Тип char знаковый тип, т.е. число (код) хранящийся в памяти может принимать значения от -128 до 127.
Если необходима беззнаковая однобайтовая переменная, используйте тип byte.
а чё СД разгоняете только до 50, а не до 255 ? без резисторов играетесь ?
а чё СД разгоняете только до 50, а не до 255 ? без резисторов играетесь ?
после 100 визуально уже не видно. Резисторы на 220Ом стоят.
Я с электроникой не особо дружу, лет десят назад паял по мелочи. Буду разбираться.