Необходимые компоненты
Arduino контроллер
Светодиод
резистор 220 Ом
Подключение
Подключение, точно такое же как и в примере мигания с помощью delay()
Во многих контроллерах Arduino есть встроенный светодиод, подключенный к порту 13.
В коде ниже используется функция millis(), возвращающая количество милисекунд с момента начала работы текущей программы на Arduino.
Код: Выделить всё
/* Blink without Delay
2005
by David A. Mellis
modified 8 Feb 2010
by Paul Stoffregen
*/
const int ledPin = 13; // номер выхода, подключенного к светодиоду
// Variables will change:
int ledState = LOW; // этой переменной устанавливаем состояние светодиода
long previousMillis = 0; // храним время последнего переключения светодиода
long interval = 1000; // интервал между включение/выключением светодиода (1 секунда)
void setup() {
// задаем режим выхода для порта, подключенного к светодиоду
pinMode(ledPin, OUTPUT);
}
void loop()
{
// здесь будет код, который будет работать постоянно
// и который не должен останавливаться на время между переключениями свето
unsigned long currentMillis = millis();
//проверяем не прошел ли нужный интервал, если прошел то
if(currentMillis - previousMillis > interval) {
// сохраняем время последнего переключения
previousMillis = currentMillis;
// если светодиод не горит, то зажигаем, и наоборот
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
// устанавливаем состояния выхода, чтобы включить или выключить светодиод
digitalWrite(ledPin, ledState);
}
}