2013-05-31 4 views
1

Я хочу установить временной интервал с помощью потенциометра. Я хочу выбрать его от 1 до 6 секунд. Как я могу это сделать?Регулятор времени потенциометра Arduino

У меня это до сих пор. Если я использую потенциометр, свет переходит от светлого к темному.

(Я использую Arduino Uno, и я программирую на C++).

const byte pot = 0; 
int potWert=0; 

potWert = analogRead(pot); 
analogWrite(led,potWert/4); 
Serial.println((byte)potWert); //just for output on the serial monitor 
+2

Итак, в чем проблема? Используйте potWert для настройки таймера. – Archie

+0

Извините, но вы не используете C++. Языковая база Arduino на C++, но это не так. –

+0

Язык Arduino - C++. Если вы не верите, что измените параметры IDE на подробные данные и посмотрите, как компилируется gcc. –

ответ

5

analogRead читает диапазон 0 до 1023. Вам необходимо масштабировать его до вашего временного интервала.

Вы сказали, что хотите диапазон от 1 до 6 секунд (не от 0 до 6?). Чтобы получить правильное масштабирование в банк, вам нужно разделить 1023 на 6 (7, если вам нужен диапазон от 0 до 6). Итак:

1023/6 = 170.5 

, таким образом, вы должны использовать:

analogWrite(led,potWert/170.5); 

Допустим, вы хотели его с точностью до десяти миллисекунд

1023/600 = 1.705 

Таким образом:

analogWrite(led,potWert/1.705); 
+1

благодарит за вашу помощь :-) – user2398664

0

Это и делает код трудным для чтения. Используйте оператор карты. Вот пример из справки Arduino:

Пример

/* Map an analog value to 8 bits (0 to 255) */ 
void setup() {} 

void loop() 
{ 
    int val = analogRead(0); 
    val = map(val, 0, 1023, 0, 255); 
    analogWrite(9, val); 
} 
Смежные вопросы