Sisällysluettelo:

Valon intensiteetin piirtäminen Arduinon ja Pythonin Arduino -pääkirjaston avulla: 5 vaihetta
Valon intensiteetin piirtäminen Arduinon ja Pythonin Arduino -pääkirjaston avulla: 5 vaihetta

Video: Valon intensiteetin piirtäminen Arduinon ja Pythonin Arduino -pääkirjaston avulla: 5 vaihetta

Video: Valon intensiteetin piirtäminen Arduinon ja Pythonin Arduino -pääkirjaston avulla: 5 vaihetta
Video: making an automatic night light with the measure of light intensity | #arduino #electronic 2024, Marraskuu
Anonim
Valon intensiteetin piirtäminen Arduinon ja Pythonin Arduino -pääkirjaston avulla
Valon intensiteetin piirtäminen Arduinon ja Pythonin Arduino -pääkirjaston avulla

Arduino on taloudellinen mutta erittäin tehokas ja toimiva työkalu, ja sen ohjelmoiminen Embedded C: hen tekee projektien tekemisestä työlästä! Pythonin Arduino_Master -moduuli yksinkertaistaa tätä ja antaa meille mahdollisuuden suorittaa laskelmia, poistaa roska -arvot ja piirtää kaavion tietojen visuaaliseksi esitykseksi.

Jos et vielä tiedä tästä moduulista, asenna se komennolla pip install Arduino_Master

Älä huoli, jos et osaa käyttää tätä moduulia, käy tästä linkistä => Arduino_Master

Tämän projektin koodi on kuitenkin aina käytettävissä tässä ohjeessa.

Tarvikkeet

Tätä projektia varten tarvitset seuraavat:

  1. Arduino
  2. Valosta riippuvainen vastus (LDR) ja
  3. Python 3 asennettu tietokoneellesi.

Vaihe 1: Piirin rakentaminen:

Piirisi rakentaminen
Piirisi rakentaminen

Käytämme Arduinon nastaa A1 syöttötietojen saamiseen. Voit myös käyttää Arduinon 5V- ja GND -nastoja akun sijaan. Tee liitäntä seuraavasti:

  1. Liitä LDR: n toinen pää 5 V: n akun positiiviseen napaan tai Arduinon 5 V: n napaan.
  2. Liitä LDR: n toinen pää rinnakkain napaan A1 ja akun negatiiviseen napaan tai Arduinon GND -nastaan.
  3. Käytä vastusta varmistaaksesi, että kaikki virta ei virtaa GND: hen, minkä seurauksena et saa tarpeeksi voimakasta signaalia Arduinon A1 -liittimessä. (Käytän 10k ohmin vastusta).

Vaihe 2: Arduinon ohjelmointi:

Arduino_Master -moduuli käyttää Arduinon sarjamonitoria tietojen lähettämiseen ja vastaanottamiseen. Tämän moduulin käytön etuna on, että kun olet ohjelmoinut Arduinosi, voit muuttaa python -ohjelmaa yksin eri projekteihin, koska ohjelmointi pythonissa on suhteellisen helppoa!

Koodi:

// LDR_1 -muuttujaa käytetään Arduinon nastan A1 merkitsemiseen.

int LDR_1 = A1;

// A1: ltä vastaanotetut tiedot tallennetaan kohteeseen LDR_Value_1.

float LDR_Value_1;

Merkkijonotulo;

mitätön asennus ()

{pinMode (LDR_1, INPUT); // LDR_1 on asetettu INPUT -nastaksi. Sarja.alku (9600); // Tiedonsiirtonopeus on 9600.}

tyhjä silmukka ()

{if (Serial.available ()> 0) // jos sarjamonitorissa on tuloa, jatka sitten. {input = Serial.readString (); // Lue syöte merkkijonona. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5/1023) on muuntokerroin arvon saamiseksi volteina. Serial.println (LDR_Value_1); // Jos tulo on yhtä suuri kuin "DATA", lue tulo LDR_1: stä ja tulosta se Serial Monitorille. } muu int i = 0; // jos tulo ei ole sama kuin "DATA", älä tee mitään! }

}

Vaihe 3: Pythonin ohjelmointi Arduinon graafisten tietojen kuvaamiseen:

Jokaisella LDR: llä olisi omat vastusarvonsa, ja meidän on muistettava, että ei elektronisille komponenteille ovat koskaan täysin identtisiä toiminnassa. Siksi meidän on ensin löydettävä jännite eri valon voimakkuuksilla.

Lataa seuraava ohjelma python IDE: hen ja suorita se:

Tee tämä eri valon voimakkuuksille ja tee kaavion avulla johtopäätös, esimerkiksi jos voimakkuus on alle 1, huone on liian pimeä. Voimakkuuden 1 ja 2 välillä huone on huomattavasti pimeä. Jos voimakkuus on suurempi kuin 2, valo kytketään päälle.

# Tuodaan Arduino_Master -moduulia

Arduino_Master -tuonnista *

# kerätä dataa

data = suodatin (ardata (8, squeeze = epätosi, dynaaminen = totta, msg = "DATA", rivit = 30), odotettu_tyyppi = 'numero', raja = [0, 5])

# raja on asetettu 5: ksi, koska käytämme 5 V: n akkua.

# Arvojen piirtäminen

Kaavio (data, stl = 'dark_background', label = 'Light Intensity')

Vaihe 4: Lopullinen ohjelma valon voimakkuuden tarkistamiseksi huoneessa

Kun olet tehnyt johtopäätöksen saamistasi tiedoista, lataa seuraava ohjelma ja muista muuttaa rajoituksia johtopäätöksesi mukaan.

# Tuodaan Arduino_Master -moduulia

Arduino_Master -tuonnista # datatietojen kerääminen = suodatin (ardata (8, squeeze = False, dynamic = true, msg = "DATA", lines = 50), odotettu_tyyppi = 'num', limit = [0, 5]) # luokittelutiedot perustuu johtopäätökseen info = i: lle alueella (len (data)): intensiteetti = data jos intensiteetti 1 ja intensiteetti = 2: info.append ('Light ON') # Kaavion piirtäminen. compGraph (data, tiedot, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

Vaihe 5: Tulos:

Tulos
Tulos

Ohjelman suorittaminen kestää minuutin tai kaksi, koska luet 50 hetkellistä arvoa Arduinolta.

Jos haluat nopeuttaa prosessia, kokeile muuttaa ardata -funktion rivit -parametria. Muista kuitenkin, että mitä vähemmän havaintoja, sitä huonompi on tietojen laatu.

Huomaa: Jos yllä olevan kuvan koko kaavio ei ole näkyvissä, katso Johdanto -osan yläpuolella olevaa kaaviota.

Suositeltava: