Может ли кто-нибудь помочь мне расшифровать код для arduino? я совсем потерялся

Код выглядит следующим образом:

void loop(){ 

    light = analogRead(5); 
    Serial.println(light); 
    analogWrite(3,light/4); 

}

, 👍0


1 ответ


Лучший ответ:

3

Не совсем физический вопрос, но я все равно отвечу.

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.

,

Отличный ответ. Для чего нужны все знаки доллара?, @CrossRoads

@CrossRoads, вопрос и ответ были перенесены с physics.stackexchange.com. На этом форуме сервер будет использовать [MathJax](https://www.mathjax.org/) для отображения любого текста, заключенного в знаки доллара, в виде математических уравнений. Люди на этом сайте нередко используют MathJax даже для «уравнения», которое представляет собой всего лишь одну буквальную константу., @Solomon Slow

Чтобы сделать ответ более ясным, я удалил разметку MathJax и внес другие небольшие изменения в форматирование., @gandalf61