Добрый день форумчане.
Кто поможет разобраться с кодом? Св-диод плавно зажигается, но зараза, гаснет резко. Просьба чайника
1) Прокомментировать код по строчно
2) Что надо добавить или изменить, что бы гаснул плавно?
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Dim A As Byte
Do
For A = 0 To 255
Pwm1a = A
Waitms 5
For A = 255 To 0 Step -5
Pwm1a = A
Waitms 5
Next A
Loop
End
Next
Predator
Отправлено: 19 Января, 2014 - 00:28:24
Супермодератор
Сообщений всего: 1307
Дата рег-ции: Июль 2012
я не понял, что это за язык, но по моему надо так:
CODE:
For A = 0 To 255 // начать первый цикл (разгорается)
// шаг равен 1?
Pwm1a = A
Waitms 5
Next A // закрыть первый цикл
// максимальная яркость
For A = 255 To 0 Step -5 // начать второй цикл (потухает)
// шаг равен -5?
Pwm1a = A
Waitms 5
Next A // закрыть второй цикл
// нулевая яркость
а теперь нюансы: 1) что такое Do, Loop, End, Next в этом языке я не знаю - возможно всё так и надо..... и всё дело в шаге : тухло в 5 раз быстрее....
2) может оказаться так, что максимальная яркость на самом деле минимальная и наоборот это зависит от схемы включения.
morokoriss
Отправлено: 19 Января, 2014 - 02:23:02
Генералиссимус
Сообщений всего: 697
Дата рег-ции: Нояб. 2011
Наверно это basic либо visual basic (Добавление)
Хотя оператора wait я там не припомню. (Добавление)
Bascom AVR это (Добавление)
basic подобный язык, вот и похож
maratino
Отправлено: 19 Января, 2014 - 16:20:10
Рядовой
Сообщений всего: 18
Дата рег-ции: Янв. 2014
PredatorНаподобие Qbasic. Bascom AVR. Ваш код что то не хочет работать. Плавное зажигаие у меня получается регулировать, а вот что бы плаво гаснул, ну ни как
morokoriss
Отправлено: 19 Января, 2014 - 20:40:01
Генералиссимус
Сообщений всего: 697
Дата рег-ции: Нояб. 2011
Используйте для примера скетч ардуиновский из примеров. Там замечательно всё работает. И загорается и гаснет плавно. (Добавление)
/*
Пример управления яркостью светодиода
на выходе 9 контроллера Arduino
функцией analogWrite().
*/
int brightness = 0; // уставливаем начально значение яркости
int fadeAmount = 5; // шаг приращения/убывания яркости
void setup() {
// устанваливаем пин 9 в режим выхода
pinMode(9, OUTPUT);
}
void loop() {
// устанавливаем значение широты импульса на выходе 9
// задавая яркость светодиода
analogWrite(9, brightness);
// измением значение в переменной для яркости
brightness = brightness + fadeAmount;
// при достижение крайних значений для яркости
// меняем знак переменной шага приращения/убывания яркости
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// делаем паузу для достижения плавного наращивания/убывания яркости
delay(30);
}
maratino
Отправлено: 19 Января, 2014 - 20:45:31
Рядовой
Сообщений всего: 18
Дата рег-ции: Янв. 2014
Спасибо за помощь! Все равно нечего не понял. Если не трудно, скиньте код, а дальше я постараюсь разобраться. Я так понял, код на Си
шаги разные, тухнуть быстрее будет. в 5 раз. Может поэтому Вам кажется что сразу тухнет. Попробуйте Step -1 во втором цикле (Добавление)
В примере из скетча шаги одинаковые, как видно, только временная задержка после каждого шага 30мс. Так плавнее будет. Попробуйте. (Добавление)
For A = 0 To 255 // начать первый цикл (разгорается)
// шаг равен 1?
Pwm1a = A
Waitms 30
Next A // закрыть первый цикл
// максимальная яркость
For A = 255 To 0 Step -1 // начать второй цикл (потухает)
// шаг равен -5?
Pwm1a = A
Waitms 30
Next A // закрыть второй цикл
// нулевая яркость
Там все просто. Есть комментарии. Плюс сообщение morokoriss.
maratino
Отправлено: 25 Января, 2014 - 15:01:36
Рядовой
Сообщений всего: 18
Дата рег-ции: Янв. 2014
Да вот попросили сделать ПАДАЮЩИЙ МЕТЕОРИТ . Думал как то разберусь. А не то то
С миганием вроде разобрался в БАСКОМЕ. А вот как сделать плавное падение??? Жуть!!!
Петр Киселев
Отправлено: 25 Января, 2014 - 18:18:30
Гуру
Сообщений всего: 2397
Дата рег-ции: Окт. 2012
Надо кроме погасания еще и перемещение его делать. (Добавление)
Под определенным углом к горизонту.
elmot
Отправлено: 25 Января, 2014 - 21:03:26
Гуру
Сообщений всего: 1141
Дата рег-ции: Дек. 2010
ыых. на светодиодной ленте на раз бы сделал
maratino
Отправлено: 25 Января, 2014 - 21:44:55
Рядовой
Сообщений всего: 18
Дата рег-ции: Янв. 2014
как это? интересно стало. каждый св-диодик будет гореть?
Петр Киселев
Отправлено: 25 Января, 2014 - 22:14:04
Гуру
Сообщений всего: 2397
Дата рег-ции: Окт. 2012
Бегущий огонек. Сверхъяркие светодиоды. И расстояние от них подобрать. (Добавление)
Так можно реализовать хоть метеоритный дождь! Молодец, elmot!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.