Inhoudsopgave:

Kleur veranderende LED - Ajarnpa
Kleur veranderende LED - Ajarnpa

Video: Kleur veranderende LED - Ajarnpa

Video: Kleur veranderende LED - Ajarnpa
Video: Kleur veranderende led lamp 2024, Juli-
Anonim
Kleur veranderende LED
Kleur veranderende LED
Kleur veranderende LED
Kleur veranderende LED
Kleur veranderende LED
Kleur veranderende LED

Ik kreeg de taak om een prototype te maken met een soort sensor om een output te genereren. Ik besloot om een fotocel te gebruiken, die de hoeveelheid licht in een omgeving meet, en een RGB LED als output. Ik wist dat ik het vermogen van de LED's om verschillende kleuren weer te geven wilde opnemen, omdat ik dacht dat het leuk zou zijn om te hebben. Als ik het soort output kon maken dat ik wilde, dacht ik dat ik het net zo goed zo kleurrijk mogelijk kon hebben.

Geschatte kosten:

$ 37 - Elegoo Super Starter-kit (inclusief alle benodigdheden)

$ 53 - Om alle benodigdheden afzonderlijk te kopen

Nuttige links:

RGB-LED -

create.arduino.cc/projecthub/muhammad-aqib…

Fotocel -

create.arduino.cc/projecthub/MisterBotBreak/hoe-een-fotoresistor-46c5eb-gebruiken

Arduino-software -

www.arduino.cc/en/software

Elegoo Super Start-kit -

www.amazon.com/gp/product/B01D8KOZF4/ref=p…

Benodigdheden

- 1 RGB-LED

- 1 fotocel (ook wel fotoresistor genoemd)

- 1 Arduino UNO-bord

- 1 breadboard

- 1 USB-kabel voor Arduino

- 7 jumperdraden

- 3 220 ohm weerstanden

- 1 weerstand van 10k ohm

- Arduino-software (gratis te downloaden)

Optioneel

- punttang

Stap 1: LED instellen op breadboard

LED instellen op breadboard
LED instellen op breadboard
LED instellen op breadboard
LED instellen op breadboard
LED instellen op breadboard
LED instellen op breadboard

Eerst moet de RGB-led correct op het breadboard worden ingesteld

Plaats de LED met elk van de vier poten in afzonderlijke gaten van dezelfde kolom (aangegeven met letters). Het langste been moet het tweede been van boven zijn.

Sluit in de rij (aangegeven met cijfers) van het langste been het ene uiteinde van een jumperdraad aan.

Plaats voor elk van de drie kortere poten een weerstand van 220 ohm. Elke weerstand moet beide benen in dezelfde rij hebben als de LED-benen. Dit is waar ik de punttang zou gebruiken, omdat de poten van de weerstanden moeilijk met de hand kunnen worden aangesloten.

Sluit drie jumperdraden aan aan de kant van de weerstand tegenover de LED. Voor deze drie rijen moet er één jumperdraad, één weerstand en één poot van de LED zijn.

Stap 2: LED instellen op Arduino

LED instellen op Arduino
LED instellen op Arduino
LED instellen op Arduino
LED instellen op Arduino
LED instellen op Arduino
LED instellen op Arduino
LED instellen op Arduino
LED instellen op Arduino

Nu de LED correct is ingesteld op het breadboard, moet deze worden aangesloten op de Arduino.

De eerste jumperdraad die is aangesloten op het langste been (moet de tweede rij van de LED zijn) moet met de grond worden verbonden, aangegeven door "GND" op de Arduino.

De andere drie jumperdraden, in aflopende volgorde, moeten worden aangesloten op poorten 11, 10 en 9. De draad in de bovenste rij moet worden aangesloten op 11, de volgende draad naar beneden (moet de derde rij zijn) wordt aangesloten op 10 en de laatste draad wordt aangesloten op 9. Deze drie draden moeten parallel aan elkaar lopen en mogen elkaar niet overlappen.

Stap 3: Fotocel instellen op breadboard

Fotocel op Breadboard instellen
Fotocel op Breadboard instellen
Fotocel op Breadboard instellen
Fotocel op Breadboard instellen
Fotocel op Breadboard instellen
Fotocel op Breadboard instellen

Om de LED te laten reageren op de helderheid van de omgeving, moet deze informatie van een sensor ontvangen.

Steek de fotocel in het breadboard met beide poten in dezelfde kolom, vergelijkbaar met hoe de LED was aangesloten.

Sluit de weerstand van 10k ohm aan met één been in dezelfde rij als het onderste been van de fotocel. Steek de tweede poot van de weerstand verder naar beneden in dezelfde kolom.

Stap 4: sluit de fotocel aan op Arduino

Sluit de fotocel aan op Arduino
Sluit de fotocel aan op Arduino
Sluit de fotocel aan op Arduino
Sluit de fotocel aan op Arduino
Sluit de fotocel aan op Arduino
Sluit de fotocel aan op Arduino
Sluit de fotocel aan op Arduino
Sluit de fotocel aan op Arduino

Steek een jumperdraad in dezelfde rij als de 10k ohm-weerstand, maar niet in dezelfde rij de fotocel.

Sluit het andere uiteinde van deze jumperdraad aan op aarde (GND) op de Arduino.

Sluit twee verschillende jumperdraden aan, één in dezelfde rij als elk van de fotocelpoten.

Steek de draad die het verst naar boven zit in de 5V-poort op de Arduino.

Steek de draad die het verst naar beneden zit in de A0-poort op de Arduino.

Stap 5: Sluit de Arduino aan

Sluit de Arduino aan
Sluit de Arduino aan
Sluit de Arduino aan
Sluit de Arduino aan
Sluit de Arduino aan
Sluit de Arduino aan
Sluit de Arduino aan
Sluit de Arduino aan

Nu het breadboard is ingesteld en verbonden met de Arduino, gebruikt u de USB-connector om de Arduino op uw computer aan te sluiten.

Stap 6: Start uw code

Start uw code
Start uw code
Start uw code
Start uw code

Maak met het Arduino-programma een nieuwe schets.

Schrijf in een opmerking je naam, enkele details over de schets en link alle bronnen die je hebt gebruikt.

Stel boven de lege instellingen de globale variabelen in. Kopieer en plak de onderstaande code gerust. Terwijl je de code schrijft, zullen bepaalde delen verschillende kleuren krijgen. Dit hoort te gebeuren.

int red_light_pin= 11;int green_light_pin = 10; int blue_light_pin = 9;int fotocelReading = 0;int fotocel = 5;

Als u merkt dat de nummers die aan deze variabelen zijn toegewezen, overeenkomen met waar de draden zijn aangesloten op het Arduino-bord.

Stap 7: Installatie ongeldig maken

Installatie ongeldig maken
Installatie ongeldig maken

Stel de RGB-LED in als uitgang.

pinMode(red_light_pin, OUTPUT);pinMode(green_light_pin, OUTPUT); pinMode (blue_light_pin, OUTPUT);

Start de seriële monitor om de meetwaarden van de fotocel te bekijken.

Serial.begin(9600);Serial.println("Seriële monitor is gestart"); vertraging(500);Serial.println("."); vertraging(500);Serial.println("."); vertraging(500);Serial.println("."); vertraging (500);

Zorg ervoor dat de ongeldige setup-code tussen een paar accolades staat { }

Stap 8: Void Loop

Nietige lus
Nietige lus
Nietige lus
Nietige lus

Schrijf de code voor de lege lussectie.

De code in de eerste afbeelding drukt de meetwaarden van de fotocel op aparte regels af. Dit maakt het makkelijker om te lezen.

int-waarde = analoog lezen (A0); photocellReading = analoogRead(fotocel);Serial.println(photocellReading); vertraging (40);

De code in de tweede afbeelding is wat overeenkomt met bepaalde leeswaarden met welke kleur de LED zal weergeven.

if (photocellReading 0) { RGB_color (255, 0, 0); // Rood } if (photocellReading 99) { RGB_color (255, 255, 0); // Geel } if (photocellReading 199) { RGB_color (0, 255, 0); // Groen } if (photocellReading 299) { RGB_color (0, 0, 255); // Blauw } if (photocellReading 399) { RGB_color (255, 0, 255); // Magenta }

Het wijzigen van de getalwaarden van RGB_color (de 0s en 255s) zal veranderen welke kleur wordt weergegeven. Dit zijn de kleuren waar ik mee ging, maar voel je vrij om ze naar wens aan te passen of te wisselen.

Controleer nogmaals of het gedeelte van de lege lus zich binnen een paar accolades bevindt { }

Stap 9: kleuren wijzigen

Kleuren veranderen
Kleuren veranderen

Dit zijn wat meer kleuren om uit te kiezen voor de vorige stap. Ik heb deze code gebruikt als referentie voor mijn schets.

Stap 10: Laatste RGB LED-code

Laatste RGB LED-code
Laatste RGB LED-code

Aan het einde van de schets, buiten de lege lussectie, voeg je deze code in om te bepalen welke poort op de Arduino de rode lichtwaarde, de groene lichtwaarde en de groene lichtwaarde communiceert.

void RGB_color (int red_light_value, int green_light_value, int blue_light_value) {analogeWrite (red_light_pin, red_light_value); analogWrite(green_light_pin, green_light_value); analogWrite(blue_light_pin, blue_light_value); }

Zorg ervoor dat deze sectie zich binnen een paar accolades bevindt, net als bij de secties voor lege instellingen en lege lussen. { }

Stap 11: Test de lichten uit

Test de lichten uit!
Test de lichten uit!
Test de lichten uit!
Test de lichten uit!
Test de lichten uit!
Test de lichten uit!

Upload de code naar het Arduino-bord door op de uploadknop in het programma te drukken. Als je het goed hebt gedaan, zou de LED een kleur moeten weergeven, afhankelijk van hoeveel licht er in de omgeving is.

Rood is de donkerste omgeving, de laagste fotocelwaarde.

Geel is een iets helderdere omgeving/hogere fotocelwaarde. Het ziet er groenblauw uit op de afbeelding, maar het scheen geel in persoon.

De volgende drie kleuren, groen, blauw en magenta, komen allemaal overeen met stapsgewijs hogere waarden van de fotocel.

Stap 12: Problemen oplossen

Probleemoplossen
Probleemoplossen

Als de kleuren niet veranderen, of als er extreme veranderingen nodig zijn om de kleuren te veranderen, controleer dan de fotocelmetingen in de seriële monitor. Elke omgeving heeft verschillende lichtniveaus, dus het is belangrijk dat de code dat weerspiegelt.

Klik op Tools bovenaan het Arduino-programma -> Klik op Serial Monitor.

Er zou een venster moeten verschijnen met een doorlopende lijst met nummers. Pas de nummers van de if-instructies aan in de stap Void Loop.

Stap 13: Eindproduct

Eindproduct
Eindproduct

Door al deze stappen uit te voeren, zou je een licht moeten krijgen dat van kleur verandert afhankelijk van de helderheid van de omgeving.

Voor mij schijnt het licht in de gemiddelde helderheid van mijn kamer groen, maar ik kan de kleur gemakkelijk veranderen door de fotocel af te dekken of door de hoeveelheid licht te vergroten.

Aanbevolen: