Датчик 220В для Arduino

Раз уж наша Arduino умеет работать автономно, не мешало бы узнать, есть ли электричество в сети.

Тут все просто, понадобится старое зарядное устройство от телефона и кабель USB. Принцип действия – элементарный, втыкаем зарядное устройство в розетку, оно дает 5 вольт, т.е. датчик активен. Вынимаем зарядное устройство из розетки, пяти вольт нет – датчик пассивен.

Важно! Сначала вы включаете Arduino и только потом втыкаете зарядное устройство (датчик 220В) в розетку. И наоборот: сначала вынимаете зарядку, а потом выключаете Arduino.

От USB кабеля безжалостно отрезаем конец со штекером miniUSB (тот, который втыкается в телефон) и зачищаем контакты. Нам нужны только два – черный (земля) и красный (+5В). К контактам припаиваем маленькие штекеры, чтобы можно было воткнуть в разъемы Arduino. Красный провод втыкаем в любой цифровой порт (на Arduino Uno 0-13), черный в землю (GND). Подтягивающий резистор ставить не нужно, он, как правило, есть в зарядном устройстве.

Пример кода, определяющий наличие 220 Вольт в сети:

int power_status; //Датчик 220В: 1 - Напряжение есть, 0 - Напряжения нет
 
void setup() {
  Serial.begin(115200);
  pinMode(1, INPUT); // Определяем пин датчика 220В
}
 
void loop() {
  power_status = digitalRead(1); // Считываем показания
  if (power_status == 1) {
    Serial.println("Напряжение в сети 220В");
  } else {
    Serial.println("Напряжение в сети 0В");
  }
 
  delay(5000);
}

Такой датчик без сбоев проработал у меня несколько лет. Нареканий нет.

Тэги: 
11.01.2020 16:47