Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Analog In — порты, принимающие аналоговый сигнал от датчиков, работают на вход. Данные порты также можно запрограммировать, как цифровые входы/выходы.
Аналоговый сигнал может меняться во времени, он непрерывен, а цифровой меняется только скачками (два положения 0В или 5В).
Для считывания сигналов с аналоговых вводов используется команда analogRead(pin). Эта команда возвращает значение от 0, при 0В на аналоговом пине, до 1023 при 5В на аналоговом пине.
Потенциометр - это переменный резистор, т.е. его сопротивление меняется в зависимости от положения ручки. Крайнее левое положение соответствует минимальному использованию его внутреннего сопротивления, крайнее правое - максимальному.
Вот он выглядит потенциометр в реальности и в Tinkercad. У него 3 вывода. Два крайних - это +5V и GND (не имеет значения какой слева, а какой справа). Средний вывод подключается к аналоговому пину и выдает сигнал от 0 до 1023.
#define potenciometr A0 //создаем переменную для потенциометра int potValue; //создаем переменную для хранения показаний потенциометра void setup(){ pinMode(potenciometr, INPUT); //настраиваем пин, к которому подключен потенциометр, как вход Serial.begin(9600); //настраиваем работу с монитором порта } void loop(){ potValue = analogRead(potenciometr); //считываем показания потенциометра и сохраняем в переменную potValue Serial.print("Potenciometr value: "); //выводим в монитор порта фразу "Potenciometr value: " Serial.println(potValue); //выводим в монитор порта значение переменной potValue и ждем 100 миллисекунд delay(100); }
#define potenciometr A0 //создаем переменную для потенциометра #define led 3 //создаем переменную для светодиода int potValue; //создаем переменную для хранения показаний потенциометра void setup(){ pinMode(potenciometr, INPUT); //настраиваем пин, к которому подключен потенциометр, как вход pinMode(led, OUTPUT); //настраиваем пин, к которому подключен светодиод, как выход Serial.begin(9600); //настраиваем работу с монитором порта } void loop(){ potValue = analogRead(potenciometr); //считываем показания потенциометра и сохраняем в переменную potValue potValue = potValue/4; //делим значение переменной на 4 analogWrite(led, potValue); //задаем значение переменной potValue в качестве яркости светодиода Serial.print("Potenciometr value: "); //выводим в монитор порта фразу "Potenciometr value: " Serial.println(potValue); //выводим в монитор порта значение переменной potValue и ждем 100 миллисекунд delay(100); }
Подробнее о analogWrite() можно прочитать здесь http://arduino.ru/Reference/AnalogWrite
Подробнее о analogRead() можно прочитать здесь http://arduino.ru/Reference/AnalogRead
1. Сделайте аналоговый калькулятор. Соберите схему с платой Arduino и двумя потенциометрами, подключенными в пинам А0 и А1. Запрограммируйте вывод в монитор порта значений, считанных с потенциометров, разделенных на 10 и округленных. Также выведите в монитор порта сумму этих значений.
2. Усложните аналоговый калькулятор. Соберите схему с платой Arduino, двумя потенциометрами, подключенными в пинам А2 и А3, и кнопкой, подключенной к пину 5. Запрограммируйте вывод в монитор порта значений, считанных с потенциометров, разделенных на 10 и округленных. Также выведите в монитор порта результат арифметической операции между этими числами. Выбор одной из четырех арифметических операций должен осуществляться с помощью кнопки.