Innehållsförteckning:

Ljusintensitetsplanering med Arduino och Pythons Arduino Master Library: 5 steg
Ljusintensitetsplanering med Arduino och Pythons Arduino Master Library: 5 steg

Video: Ljusintensitetsplanering med Arduino och Pythons Arduino Master Library: 5 steg

Video: Ljusintensitetsplanering med Arduino och Pythons Arduino Master Library: 5 steg
Video: Окрашивание волос Блонд Пошагово дома | Холодный Блонд самой себе | Уроки окрашивания волос 2024, November
Anonim
Ljusintensitetsplanering med Arduino och Pythons Arduino Master Library
Ljusintensitetsplanering med Arduino och Pythons Arduino Master Library

Arduino är ett ekonomiskt men ändå mycket effektivt och funktionellt verktyg, och programmerar det i Embedded C gör processen att göra projekt tråkig! Arduino_Master -modulen i Python förenklar detta och låter oss utföra beräkningar, ta bort sopvärden och rita upp en graf för en visuell representation av data.

Om du inte vet om den här modulen ännu, installera den med kommandot pip install Arduino_Master

Oroa dig inte om du inte vet hur du använder den här modulen, besök den här länken => Arduino_Master

Koden för detta projekt kommer dock alltid att finnas tillgänglig i den här instruktionsboken.

Tillbehör

För detta projekt behöver du följande:

  1. En Arduino
  2. En ljusberoende motstånd (LDR) och
  3. Python 3 installerat på din dator.

Steg 1: Bygg din krets:

Bygg din krets
Bygg din krets

Vi kommer att använda stift A1 på Arduino för att få indata. Du kan också använda 5V- och GND -stiften på Arduino istället för batteriet. Gör anslutningen enligt följande:

  1. Anslut ena änden av LDR till pluspolen på ett 5V -batteri eller till 5V -stiftet på Arduino.
  2. Anslut den andra änden av LDR parallellt med stift A1 och minuspolen på batteriet eller GND -stiftet på Arduino.
  3. Använd ett motstånd för att se till att all ström inte flödar till GND vilket skulle leda till att du inte får en tillräckligt stark signal för att känna av A1 -terminalen på Arduino. (Jag använder ett motstånd på 10k ohm).

Steg 2: Programmering av din Arduino:

Arduino_Master -modulen använder seriell övervakning av Arduino för att skicka och ta emot data. Fördelen med att använda denna modul är att när du programmerar din Arduino kan du ändra pythonprogrammet ensam för olika projekt eftersom programmering i python är jämförelsevis enklare!

Koda:

// LDR_1 -variabel används för att beteckna stift A1 på Arduino.

int LDR_1 = A1;

// Data som tas emot från A1 kommer att lagras i LDR_Value_1.

float LDR_Value_1;

Strängingång;

void setup ()

{pinMode (LDR_1, INPUT); // LDR_1 är inställd som en INPUT -pin. Serial.begin (9600); // Kommunikations baudrate är inställd på 9600.}

void loop ()

{if (Serial.available ()> 0) // om någon ingång är tillgänglig i den seriella bildskärmen, fortsätt sedan. {input = Serial.readString (); // Läs inmatningen som en sträng. if (input == "DATA") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) är konverteringsfaktorn för att få värde i volt. Serial.println (LDR_Value_1); // Om ingången är lika med "DATA", läs sedan inmatningen från LDR_1 och skriv ut den på seriell bildskärm. } annars int i = 0; // om ingången inte är lika med "DATA", gör ingenting! }

}

Steg 3: Programmering av Python till grafdata från Arduino:

Varje LDR skulle ha sina egna motståndsvärden och vi måste komma ihåg att nej till elektroniska komponenter någonsin är exakt identiska i drift. Således måste vi först hitta spänningen vid olika ljusintensiteter.

Ladda upp följande program till din python IDE och kör det:

Gör detta för olika ljusintensiteter och använd grafen för att dra en slutsats, till exempel om intensiteten är mindre än 1 är rummet för mörkt. För intensiteten mellan 1 och 2 är rummet betydligt mörkt. För intensiteten större än 2 tänds ljuset.

# Importera Arduino_Master -modul

från Arduino_Master import *

# samla in data

data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 30), expected_type = 'num', limit = [0, 5])

# gräns är satt till 5 eftersom vi använder ett 5V batteri.

# Plotta värdena

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

Steg 4: Slutprogram för att kontrollera ljusets intensitet i ett rum

Efter att ha kommit till en slutsats från de data du fått, ladda upp följande program och se till att ändra gränserna enligt din slutsats.

# Importera Arduino_Master -modul

från Arduino_Master import # insamling av data data = filter (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expected_type = 'num', limit = [0, 5]) #classifying data baserat på slutsatsinfo = för i inom intervallet (len (data)): intensitet = data om intensitet 1 och intensitet = 2: info.append ('Light ON') # Plotta diagrammet. compGraph (data, info, stl = 'dark_background', label1 = 'Light Intensity', label2 = 'State')

Steg 5: Resultat:

Resultat
Resultat

Programmet skulle ta en eller två minuter att köra eftersom du läser 50 momentana värden från Arduino.

Om du vill påskynda processen kan du försöka ändra linjeparametern för ardatafunktionen. Men kom ihåg att ju mindre observationerna är, desto mindre blir datakvaliteten.

Obs! Om hela diagrammet på bilden ovan inte syns, se diagrammet ovanför introduktionsavsnittet.

Rekommenderad: