- Szükséges anyagok:
- LDR:
- RGB LED:
- Kördiagramm:
- Programozási magyarázat:
- Az Arduino színes keverőlámpa működése:
Mi van, ha egyetlen RGB led segítségével különböző színeket tudunk előállítani, és szobánk sarkát vonzóbbá tesszük? Tehát itt van egy egyszerű Arduino alapú színkeverő lámpa, amely megváltoztathatja a színét, ha a helyiségben változik a fény. Tehát ez a lámpa automatikusan megváltoztatja színét a helyiség fényviszonyainak megfelelően.
Minden szín a vörös, a zöld és a kék szín kombinációja. Tehát bármilyen színt előállíthatunk vörös, zöld és kék színek használatával. Tehát itt változtatni fogjuk a PWM-et, azaz a fény intenzitását az LDR-eken. Ez tovább változtatja a vörös, zöld és kék szín intenzitását az RGB LED-ben, és különböző színeket állítanak elő.
Az alábbi táblázat bemutatja a színkombinációkat, az adott ciklusok változásával.
Szükséges anyagok:
- 1 x Arduino UNO
- 1 x kenyérlap
- 3 x 220 ohmos ellenállás
- 3 x 1 kilohmos ellenállás
- Jumper huzalok
- 3 x LDR
- 3 x színes csík (piros, zöld, kék)
- 1 x RGB LED
LDR:
Ebben az áramkörben itt fotorezisztort (vagy fényfüggő ellenállást, LDR -t vagy fényvezető cellát) használunk. Az LDR-ek félvezető anyagokból készülnek, hogy lehetővé tegyék számukra a fényérzékeny tulajdonságukat. Ezek az LDR-ek vagy FOTÓ-ELLENÁLLÍTÓK a „Photo Conductivity” elvén működnek. Amit ez az elv mond, az az, hogy amikor a fény az LDR felületére esik (ebben az esetben), az elem vezetőképessége megnő, vagy más szavakkal, az LDR ellenállása csökken, amikor a fény az LDR felületére esik. Az ellenállás csökkenésének ezt a tulajdonságát az LDR szempontjából azért érik el, mert ez a felületen alkalmazott félvezető anyag tulajdonsága.
Itt három LDR szenzort használnak az egyes vörös, zöld és kék LED fényerejének szabályozására az RGB Led-en belül. Tudjon meg többet az LDR vezérléséről az Arduino segítségével itt.
RGB LED:
Kétféle RGB LED létezik , az egyik a közös katód típusú (közös negatív), a másik pedig a közös anód típusú (közös pozitív) típus. A CC-ben (közös katód vagy közös negatív) három pozitív terminál lesz, mindegyik terminál egy színt képvisel, és egy negatív terminál, amely mind a három színt képviseli.
Az áramkörünkben CA (Common Anode or Common Positive) típust fogunk használni. Közös anódtípus esetén, ha azt akarjuk, hogy a RED LED be legyen kapcsolva, akkor földelni kell a RED LED tüskét, és áramellátást kell biztosítani a közös pozitívra. Ugyanez vonatkozik az összes LED-re. Itt tanulhatja meg az RGB LED és az Arduino összekapcsolását.
Kördiagramm:
Ennek a projektnek a teljes kapcsolási rajza a fenti. A kapcsolási rajzon bemutatott + 5V és földelt csatlakozás az Arduino 5V-os és földelőcsapjából szerezhető be. Maga az Arduino táplálható laptopjáról vagy a DC aljzaton keresztül 12 V-os adapter vagy 9 V-os akkumulátor segítségével.
A PWM segítségével megváltoztatjuk az RGB led fényerejét. Itt többet megtudhat a PWM-ről. Íme néhány PWM példa az Arduinóval:
- Változtatható áramellátás: Arduino Uno
- DC motor vezérlés az Arduino segítségével
- Arduino alapú hanggenerátor
Programozási magyarázat:
Először deklaráljuk az összes bemenetet és kimenetet az alábbiak szerint.
konst byte red_sensor_pin = A0; konst byte green_sensor_pin = A1; konst byte blue_sensor_pin = A2; konst byte green_led_pin = 9; konst byte blue_led_pin = 10; konst byte red_led_pin = 11;
Nyújtsa be az érzékelők és a ledek kezdeti értékét 0-nak.
aláíratlan int red_led_value = 0; aláíratlan int blue_led_value = 0; unsigned int green_led_value = 0; aláíratlan int vörös_érzékelő_érték = 0; aláíratlan int kék_érzékelő_érték = 0; aláíratlan int zöld_érzékelő_érték = 0; void setup () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
A hurok szakaszban három érzékelő kimenetét vesszük az analogRead () segítségével; függvény és tárolja három különböző változóban.
void loop () { red_sensor_value = analogRead (red_sensor_pin); késés (50); blue_sensor_value = analogRead (blue_sensor_pin); késés (50); green_sensor_value = analogRead (green_sensor_pin);
Hibakeresés céljából nyomtassa ki ezeket az értékeket a soros monitorra
Serial.println ("Nyers érzékelő értékei:"); Serial.print ("\ t Piros:"); Soros.nyomtatás (piros_érzékelő_érték); Serial.print ("\ t kék:"); Soros nyomtatás (kék_érzékelő_érték); Serial.print ("\ t Zöld:"); Soros.println (zöld_érzékelő_érték);
0-1023 értéket kapunk az érzékelőktől, de az Arduino PWM csapjaink kimenetként 0-255 értékeket tartalmaznak. Tehát a nyers értékeinket 0-255-re kell konvertálnunk. Ehhez el kell osztanunk a nyers értékeket 4 VAGY, egyszerűen használhatjuk az Arduino térképészeti függvényét ezeknek az értékeknek a konvertálására.
red_led_value = red_sensor_value / 4; // definiálja a piros LED-et blue_led_value = blue_sensor_value / 4; // meghatározza a kék LED-et green_led_value = green_sensor_value / 4; // meghatározza a Zöld Led-et
A leképezett értékek nyomtatása soros monitorra
Serial.println ("leképezett érzékelőértékek:"); Serial.print ("\ t Piros:"); Soros.nyomtatás (red_led_value); Serial.print ("\ t kék:"); Soros.nyomtatás (blue_led_value); Serial.print ("\ t Zöld:"); Soros.println (green_led_value);
Az analogWrite () segítségével állítsa be az RGB LED kimenetét
analogWrite (red_led_pin, red_led_value); // a piros LED analóg írása (blue_led_pin, blue_led_value); // jelzi a kék LED analogWrite-t (green_led_pin, green_led_value); // zöldet jelöl
Az Arduino színes keverőlámpa működése:
Mivel három LDR-t használunk, amikor ezekre az érzékelőkre beesik a fény, az ellenállása megváltozik, aminek eredményeként a feszültség az Arduino analóg csapjain is változik, amely az érzékelők bemeneti tüskéjeként működik.
Amikor ezeken az érzékelőkön megváltozik a fény intenzitása, a megfelelő RGB-ben lévő fényviszonyok az ellenállás mértékének változásával világítanak, és a PWM segítségével különböző színkeverésűek vagyunk az RGB-ben.