Может ли кто-нибудь помочь мне расшифровать код для arduino? я совсем потерялся
Код выглядит следующим образом:
void loop(){
light = analogRead(5);
Serial.println(light);
analogWrite(3,light/4);
}
@, 👍0
1 ответ
Лучший ответ:
Не совсем физический вопрос, но я все равно отвечу.
loop()
— это стандартная функция Arduino, содержащая код, который микропроцессор выполняет многократно (в отличие от кода в setup()
, который запускается только один раз).
light = AnalogRead(5);
берет аналоговое значение напряжения с контакта 5, кодирует его как целочисленное значение (10 или 12 бит в зависимости от модели Arduino) и сохраняет результат в переменная light
.
Serial.println(light);
выводит значение переменной light
в последовательный порт Arduino. Это стандартный способ вывода данных из Arduino, чтобы их можно было отобразить на подключенном компьютере.
analogWrite(3, light/4);
выводит значение light/4
в виде сигнала с фазовой модуляцией (ШИМ) на контакт 3. Хотя выход Arduino контакты либо включены (5 вольт), либо выключены (земля) в любой момент времени, сигналы ШИМ позволяют Arduino быстро включать и выключать выходной контакт, так что среднее напряжение, наблюдаемое на этом контакте, является промежуточным значением. Рабочий цикл ШИМ-сигнала, который определяет среднее напряжение на выводе, закодирован как 8-битное целое число, поэтому light
здесь, вероятно, делится на 4, чтобы преобразовать его из 10-битного в 8-битное.
Таким образом, Arduino будет многократно считывать входное напряжение с контакта 5, выводить целое число, представляющее это напряжение, в последовательный порт и создавать ШИМ-сигнал на контакте 3 со средним напряжением, таким же, как и у входного напряжения.
Дополнительную информацию см. на справочной странице языка Arduino.
- Сброс Arduino Uno в коде
- Библиотека DHT.h не импортируется
- Как вызвать функции C из скетча ардуино?
- Напряжение меняется, но цифровой поток всегда HIGH
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
- Сброс Arduino UNO с помощью SIM800L
- Проблема с Software Serial: нет ответа
- Как узнать, нужно ли мне использовать резистор в цепи?
Отличный ответ. Для чего нужны все знаки доллара?, @CrossRoads
@CrossRoads, вопрос и ответ были перенесены с physics.stackexchange.com. На этом форуме сервер будет использовать [MathJax](https://www.mathjax.org/) для отображения любого текста, заключенного в знаки доллара, в виде математических уравнений. Люди на этом сайте нередко используют MathJax даже для «уравнения», которое представляет собой всего лишь одну буквальную константу., @Solomon Slow
Чтобы сделать ответ более ясным, я удалил разметку MathJax и внес другие небольшие изменения в форматирование., @gandalf61