
У потенциометра три ноги - крайние подключаем к земле и +5В, а со средней снимаем выходное напряжение - подключим, например, к аналоговому входу 0. В крайнем правом положении на ней будет 0В, а в крайнем левом +5В.
Код программы, загружаемой в Arduino:
#define ANALOG_IN 0 // Порт, к которому подключен переменный резистор
int avalue = 0 // Здесь мы храним данные со второго порта
void setup() {
Serial.begin(9600);
}
void loop() {
avalue = analogRead(ANALOG_IN); // считываем значение с нулевого аналогового порта.
Serial.println(avalue); // отправляем данные на COM порт.
}
Вот и все, теперь нажав на кнопку "Serial monitor" в Arduino IDE мы увидим бегущие цифры, а вращая "крутилку" :))) потенциометра - будем наблюдать за их изменением :)
Это можно использовать, например, для ручного изменения яркости светодиода. Есть два варианта:
1) Подключить анод (плюс, длинная нога) светодиода к средней ноге потенциометра, а катод (минус, короткая нога), через резистор (рассчитывается из характеристик светодиода, но обычно 1кОм хватает ) к земле.
2) Либо не меняя первоначальной схемы, подключить анод к цифровому выходу с ШИМ (PWM) (Широтно-импульсная модуляция) Arduino, а дальше как обычно, через резистор, к земле. ШИМ позволяет получить аналоговый сигнал средствами цифровых портов. На выход будет подаваться напряжение в 5В с определенной частотой. Так, например, для получения напряжения 2,5В надо подавать 5В в два раза реже. Необходимо изменить вышеприведенную программу:
#define ANALOG_IN 0 // Порт, к которому подключен переменный резистор
#define ledPin 11 // Порт, к которому подключен светодиод. (11 порт с PWM )
int avalue = 0; // Здесь мы храним данные с нулевого порта
void setup() {
}
void loop() {
avalue = analogRead(ANALOG_IN); // считываем значение с нулевого порта.
analogWrite(ledPin, avalue/4); // Т.к. указать надо значение 0..255, а приходит 0..1023 - делим на 4.
}
1 коммент.:
в #define ";" не ставить!)
Отправить комментарий