Необходимое оборудование
- Arduino
- потенциометр
- светодиод
- 220 Ом резистор
Цепь
Подключите один вывод из вашего потенциометра на 5V, центральный контакт на аналоговый вывод 0, а последний вывод на землю. Далее подключить светодиод через 220 Ом резистор для ограничения тока в цифровой контакт 9. Длинный пин должен быть подключен к выходу из резистора, короткий на землю.
Схематический
Код
В программе ниже, после объявления двух назначение выводов (аналоговый 0 для потенциометров и цифровых 9 для LED) и двух переменных,sensorValue
и outputValue
, единственное, что вы делаете, будет в настройках функцию начать последовательную связь.sensorValue
назначается для хранения аналогового значения, поступающие из потенциометра. Поскольку Arduino имеет analogRead
разрешение 0-1023, а analogWrite
разрешение только 0-255, это необработанные данные от потенциометра должно быть уменьшено до его использования для затемнения LED.map()
outputValue = map(sensorValue, 0, 1023, 0, 255);
outputValue
назначается равной масштабированное значение с потенциометра. map() принимает пять аргументов: значение, которое будет отображаться, диапазон низких и высоких частот исходных данных, а также низких и высоких значений, что данные, которые будут масштабироваться тоже. В этом случае, данные датчиков отображается вниз от своего первоначального диапазона от 0 до 1023 от 0 до 255.analogOutPin
для затемнения или осветления LED в зависимости от значения потенциометра. Наконец, как значение и масштабированное значение датчиков направляются в последовательный порт непрерывным потоком данных.const int analogInPin = A0;
const int analogOutPin = 9;
int sensorValue = 0;
int outputValue = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 0, 255);
analogWrite(analogOutPin, outputValue);
Serial.print("sensor = " );
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);
delay(2);
}