// даём разумное имя для пина №9 со светодиодом// (англ. Light Emitting Diode или просто «LED»)// Так нам не нужно постоянно вспоминать куда он подключён#define LED_PIN 9 void setup(){ // настраиваем пин со светодиодом в режим выхода, // как и раньше pinMode(LED_PIN, OUTPUT);} void loop(){ // выдаём неполное напряжение на светодиод // (он же ШИМ-сигнал, он же PWM-сигнал). // Микроконтроллер переводит число от 0 до 255 к напряжению // от 0 до 5 В. Например, 85 — это 1/3 от 255, // т.е. 1/3 от 5 В, т.е. 1,66 В. analogWrite(LED_PIN, 85); // держим такую яркость 250 миллисекунд delay(250); // выдаём 170, т.е. 2/3 от 255, или иными словами — 3,33 В. // Больше напряжение — выше яркость! analogWrite(LED_PIN, 170); delay(250); // все 5 В — полный накал! analogWrite(LED_PIN, 255); // ждём ещё немного перед тем, как начать всё заново delay(250);}LED_PIN) являются одним словом (т.е. нельзя создать идентификатор LED PIN)._. При этом идентификатор не может начинаться с цифры.PRINT // верноPRINT_3D // верноMY_PRINT_3D // верно_PRINT_3D // верно3D_PRINT // ошибкаПЕЧАТЬ_3Д // ошибкаPRINT:3D // ошибкаLED_PIN, LED_pin и led_pin с точки зрения компилятора — различные идентификаторы#define просто говорит компилятору заменить все вхождения заданного идентификатора на значение, заданное после пробела (здесь 9), эти директивы помещают в начало кода. В конце данной директивы точка с запятой ; не допустима// и многострочные, заключённые между /* */// однострочный комментарий следует после двойного слеша до конца строки/* многострочный комментарий помещается между парой слеш-звездочка и звездочка-слеш */комментарии игнорируются компилятором, зато полезны людям при чтении давно написанного, а особенно чужого, кода
analogWrite(pin, value) не возвращает никакого значения и принимает два параметра: pin — номер порта, на который мы отправляем сигналvalue — значение скважности ШИМ, которое мы отправляем на порт. Он может принимать целочисленное значение от 0 до 255, где 0 — это 0%, а 255 — это 100%13pinMOTOR_1контакт_светодиодаsensor valueleftServomy-vardistance_eval2#define HIGH LOW?analogWrite(6, 153)?value нужно передать функции analogWrite, чтобы получить усреднённое напряжение 2 В?