Lys Følgende og undgå robot baseret på Arduino: 5 trin

Lys Følgende og undgå robot baseret på Arduino: 5 trin

Indholdsfortegnelse:

Anonim

Dette er et simpelt projekt, der følger eller Undgå Lys.

Jeg lavede denne simulering i Proteus 8.6 pro.

Komponenter påkrævet: -

1) Arduino uno.

2) 3 LDR.

3) 2 dc gearmotorer.

4) Én servo.

5) Tre 1k Modstande.

6) en H-Bridge l290D

7) En til og fra-switch for at ændre tilstanden af ​​programmet

8) 9v og 5v Battry

forsyninger:

Trin 1: Ardunio kode

Forbedringer: _

Arduino Code er ændret en littebit Dato 23. februar 2016

Denne kode er stærkt kommenteret, jeg ønsker ikke at forklare, men hvis du har brug for hjælp, er du velkommen til at kontakte mig på ([email protected])

Bemærk:-

Jeg bruger to betingelser i dette program

1. for lys efterfølgende

2. for lys undgår.

Så vidt disse betingelser er opfyldt, vil Robot følge eller undgå lys.

Dette er minimale værdi for LDR, som jeg vælger. I normal lys er Range Range fra 80 til 95, men da intensiteten øges, øges flere og flere spændinger, som det arbejder på spændingsdeleren

int a = 400; // Tolaransværdi

Trin 2: Proteus-filer

For Arduino Bibliotek download fra det link

Trin 3: Hvordan din H-bro fungerer

L293NE / SN754410 er en meget grundlæggende H-bro. Den har to broer, en på venstre side af chippen og en til højre, og kan styre 2 motorer. Det kan køre op til 1 amp strøm, og operere mellem 4,5V og 36V. Den lille DC-motor, du bruger i dette laboratorium, kan løbe sikkert af lav spænding, så denne H-bro fungerer fint. H-broen har følgende pin og funktioner: Pin 1 (1,2EN) aktiverer og deaktiverer vores motor, om den giver HØJ eller LOWPin 2 (1A), er en logisk nål til vores motor (indgangen er enten HØJ eller LAV) Pin 3 (1Y) er til en af ​​motorterminalerne. 4-5 er til groundPin 6 (2Y) er til den anden motorterminalPin 7 (2A) er en logisk pin for vores motor (indgang er enten HIGH eller LOW) Pin 8 (VCC2) er strømforsyningen til vores motor, bør dette gives den nominelle spænding på din motorPin 9-11 er ikke tilsluttet, da du kun bruger en motor i dette labPin 12-13 er til groundPin 14-15 er uafbrudtPin 16 (VCC1) er forbundet til 5V. Ovenfor er et diagram over H-broen, og hvilke stifter gør hvad i vores eksempel. Inkluderet med diagrammet er en sandhedstabel, der angiver, hvordan motoren vil fungere i henhold til tilstanden af ​​de logiske stifter (som er indstillet af vores Arduino).

I dette projekt forbindes aktiveringsstiften til en digital stift på din Arduino, så du kan sende den enten HIGH eller LOW og slå motoren TIL eller FRA. Motorens logiske stifter er også forbundet med udpegede digitale stifter på din Arduino, så du kan sende den HØJ og LAV for at få motoren til at dreje i en retning, eller LOW og HIGH for at få den til at dreje i den anden retning. Motorspændingen forbinder til spændingskilden til motoren, som normalt er en ekstern strømforsyning. Hvis din motor kan køre på 5V og mindre end 500mA, kan du bruge Arduino's 5V-udgang. De fleste motorer kræver en højere spænding og højere strømstrækning end dette, så du skal have en ekstern strømforsyning.

Tilslut motoren til H-broen Tilslut motoren til H-broen som vist obve i 2. billede.

Eller hvis du bruger en ekstern strømforsyning til Arduino, kan du bruge Vin-pin.

Trin 4: Sådan fungerer LDR

Nu er det første, der kan få brug for yderligere forklaring, brugen af ​​lysafhængighedsmodstandene. Light Dependent Resistors (eller LDR'er) er modstande, hvis værdi ændres afhængigt af mængden af ​​omgivende lys, men hvordan kan vi detektere resistens med Arduino? Nå kan du ikke rigtig, men du kan registrere spændingsniveauer ved hjælp af de analoge stifter, som kan måle (i grundlæggende brug) mellem 0-5V. Nu kan du spørge "Nå, hvordan konverterer vi modstandsværdier til spændingsændringer?", Det er simpelt, vi laver en spændingsdeler. En spændingsdeler indtager en spænding og udsender derefter en brøkdel af den spænding, der er proportional med indgangsspændingen og forholdet mellem de to anvendte værdier af modstande. Ligningen for hvilken er:

Udgangsspænding = Indgangsspænding * (R2 / (R1 + R2)) Hvor R1 er værdien af ​​den første modstand, og R2 er værdien af ​​den anden.

Nu stiller det stadig spørgsmålet "Men hvilke modstandsværdier har LDR'en?", Godt spørgsmål.

Jo mindre mængde omgivende lys, desto højere modstand, mere omgivende lys betyder en lavere modstand. Nu for de specielle LDR'er, jeg brugte, var deres modstandsinterval fra 200 - 10 kilo ohm, men det ændrer sig til forskellige, så sørg for at kigge op, hvor du har købt dem og forsøge at finde et dataark eller noget af den slags. Nu i dette tilfælde R1 er faktisk vores LDR, så lad os bringe tilbage den ligning og lave nogle matte-e-magi (matematisk elektrisk magi). Nu skal vi først konvertere disse kilo ohm værdier til ohm:

200 kilo-ohm = 200.000 ohm 10 kilo-ohm = 10.000 ohm

Så for at finde udgangsspændingen, når vi er i tonehøjde, sætter vi i følgende tal:

5 * (10000 / (200000 + 10000))

Indgangen er 5V, da det er det, vi får fra Arduino.

Ovennævnte giver 0,24 V (afrundet). Nu finder vi, hvad udgangsspændingen er i højeste lysstyrke ved at bruge følgende tal: 5 * (10000 / (10000 + 10000)) Og det giver os 2,5V præcis.

Så det er de spændingsværdier, som vi kommer til at komme ind i Arduino's analoge stifter, men det er ikke de værdier, der ses i programmet "Men hvorfor?" Kan du spørge.

Arduino bruger en analog til digital chip, der konverterer analog spænding til brugbare digitale data. I modsætning til de digitale stifter på Arduino, der kun kan læse en høj eller lav tilstand, der er 0 og 5V, kan de analoge stifter læse fra 0-5V og konvertere dette til et talområde på 0-1023.Nu med nogle mere math-e-magi.

vi kan faktisk beregne hvilke værdier Arduino faktisk vil læse.

Fordi dette vil være en lineær funktion, kan vi bruge følgende formel: Y = mX + C

Hvor; Y = Digital ValueWhere; m = hældning, (stigning / kørsel), (digital værdi / analog værdi) Hvor; C = Y interceptY Y intercept er 0, så det giver os: Y = mXm = 1023/5 = 204.6Derfor: Digital værdi = 204,6 * Analog værdi Så i tonehøjde vil den digitale værdi være: 204,6 * 0,24

Hvilket giver ca. 49. Og i højeste lysstyrke vil det være: 204,6 * 2,5

Hvilket giver ca. 511.

Nu med to af disse opstillet på to analoge stifter kan vi oprette to heltallvariable til at gemme deres værdier to og sammenligne operatører for at se, hvilken der har den laveste værdi og dreje roboten i den retning.

Trin 5: