Pro M5stack jednotky lze zakoupit různé rozšiřovací moduly, kdy jedním ze základních je Light, anglicky světlo. Ve skutečnosti se jedná o fotorezistor uložený v malém modulu.

M5Stack jednotka LIGHT s fotoodporem

Pro jeho spojení s M5stack deskou stačí propojit 3 vodiče. Propojíme GND s GND, 5V s 5V a IN s pinem 36. Pro datový pin IN lze použít i jiný volný pin, ale je nutné to provést také na začátku programu.

M5Stack jednotka LIGHT s fotoodporem schema

Ukázkový program najdete níže, přičemž jeho popis můžete najít na videu, které je připojeno na konci návodu.

// M5 stack a jednotka Light
// navody.dratek.cz

// připojení potřebné knihovny
#include <M5Stack.h>
// nastavení propojovacího pinu pro jednotku Angle
#define aout_pin 36
#define dout_pin 35
// proměnné pro uložení načtených údajů
int hodnota_aout = 0;
int hodnota_dout = 0;

void setup() {
  // zahájení komunikace s M5 stack
  M5.begin();
  // zahájení komunikace s napájecím čipem
  M5.Power.begin();
  // nastavení pinu jako vstupu
  pinMode(dout_pin, INPUT);
  // vypnutí reproduktoru
  dacWrite(25, 0);
  // nastavení barvy a velikosti textu
  M5.Lcd.setTextColor(YELLOW);
  M5.Lcd.setTextSize(2);
  // nastavení kurzoru pro tisk
  M5.Lcd.setCursor(65, 50);
  // vytištění info zprávy
  M5.Lcd.printf("Light modul ukazka: n");
  // vytištění popisků na displej
  M5.Lcd.setCursor(85, 80);
  M5.Lcd.print("Aout:");
  M5.Lcd.setCursor(85, 100);
  M5.Lcd.print("Dout:");
}

void loop() {
  // načtení údajů ze senzoru
  hodnota_aout = analogRead(aout_pin);
  hodnota_dout = digitalRead(dout_pin);
  // vytištění načtených dat žlutou barvou
  M5.Lcd.setTextColor(YELLOW);
  M5.Lcd.setCursor(175, 80);
  M5.Lcd.printf("%dn", hodnota_aout);
  M5.Lcd.setCursor(175, 100);
  M5.Lcd.printf("%dn", hodnota_dout);
  // krátká pauza
  delay(100);
  // vymazání údajů na displeji černou barvou
  M5.Lcd.setCursor(175, 80);
  M5.Lcd.setTextColor(BLACK);
  M5.Lcd.printf("%dn", hodnota_aout);
  M5.Lcd.setCursor(175, 100);
  M5.Lcd.printf("%dn", hodnota_dout);
  // přepis textu o množství světla
  // vyplnění obdélníku za zadaných souřadnicích
  // černě pro přemazání předchozího tisku
  M5.Lcd.fillRect(15, 120, 305, 40, BLACK);
  // nastavení kurzoru pro výpis
  M5.Lcd.setCursor(15, 120);
  M5.Lcd.setTextColor(WHITE);
  // kontrola naměřené hodnoty
  // a výpis informací dle naměřené hodnoty
  if (hodnota_aout < 500) {
    M5.Lcd.printf("V okoli je hodne svetla!");
  }
  else if (hodnota_aout < 1500) {
    M5.Lcd.printf("V okoli je malo svetla!");
  }
  else if (hodnota_aout < 2500) {
    M5.Lcd.printf("V okoli je sero!");
  }
  else {
    M5.Lcd.printf("V okoli je tma!");
  }
}

Sestřih ze streamu:

Celý záznam:

Na eshopu můžete tento M5stack Light modul zakoupit zde:
https://dratek.cz/arduino/20935-m5stack-svetelny-senzor-s-fotorezistorem.html

FB tw

Další podobné články