Ви не увійшли.
int potent_led; //переменная для хранения значения с потенциометра.
void setup()
{
Serial.begin(9600);
pinMode(3, OUTPUT); //сюда подключен светодиод
}
void loop()
{
potent_led = analogRead(A0); //потенциометр подключен в A0
potent_led = map(potent_led, 0, 1023, 0, 5000);
digitalWrite(3, HIGH);
delayMicroseconds(200);
digitalWrite(3, LOW);
delayMicroseconds(potent_led);
}
Задача при помощи изменения частоты мигания "управлять" движением вращающейся картинки. Но код работает некорректно, скорости мигания не хватает, как поправить ?
Неактивний
Задача при помощи изменения частоты мигания "управлять" движением вращающейся картинки. Но код работает некорректно, скорости мигания не хватает, как поправить ?
Не совсем понятно что вы хотите ... и уж тем более что такое "скорости мигания не хватает"?
Но:
1. Там где вы задаёте частоту вспышек:
potent_led = map(potent_led, 0, 1023, 0, 5000);
Из документации:
На данный момент наибольшее число, позволяющее сформировать точную задержку, — 16383.
... Для создания задержек длительностью больше, чем несколько тысяч микросекунд, используйте функцию delay().
2. Arduino, вообще то говоря, игрушечная платформа ... И относительно линейности значений analogRead() там есть большие сомнения (наблюдал это делая генератор синусной яркости). У вас может быть такой шаг (ступенька) на малых значениях map(), что она уже не покрывает малые периоды повторения.
3. У вас ещё есть инерционность исполнительного механизма - что там у вас "пыхает"? Если этот фонарь достаточно инерционный то вы ничего не получите. (Можно, кстати, попробовать форсировать начальную фазу зажигания, если не просто digitalWrite(), а подавать туда аналоговое напряжение сложной формы через ШИМ/ЦАП.)
Неактивний