Innehållsförteckning:

Använda en LED -matris som skanner: 8 steg (med bilder)
Använda en LED -matris som skanner: 8 steg (med bilder)

Video: Använda en LED -matris som skanner: 8 steg (med bilder)

Video: Använda en LED -matris som skanner: 8 steg (med bilder)
Video: Störig granne 2024, November
Anonim
Image
Image
Gör Boxy Stuff av föråldrade visitkort!
Gör Boxy Stuff av föråldrade visitkort!

Av marciotMarcioT: s hemsida Följ mer av författaren:

Gör Boxy Stuff av föråldrade visitkort!
Gör Boxy Stuff av föråldrade visitkort!
DIY 2,5x till 5x opera-/konsertglasögon
DIY 2,5x till 5x opera-/konsertglasögon
DIY 2,5x till 5x opera-/konsertglasögon
DIY 2,5x till 5x opera-/konsertglasögon
Hela hemmet Trådlös vattenläckagedetektor och nödavstängningssystem
Hela hemmet Trådlös vattenläckagedetektor och nödavstängningssystem
Hela hemmet Trådlös vattenläckagedetektor och nödavstängningssystem
Hela hemmet Trådlös vattenläckagedetektor och nödavstängningssystem

Om: Jag är en hobbyist med ett intresse för öppen källkod, 3D-utskrift, vetenskap och elektronik. Besök min butik eller Patreon -sida för att stödja mitt arbete! Mer om marciot »

Vanliga digitalkameror fungerar genom att använda ett stort antal ljussensorer för att fånga ljus när det reflekteras från ett objekt. I detta experiment ville jag se om jag kunde bygga en bakåtvänd kamera: istället för att ha en mängd ljussensorer har jag bara en enda sensor; men jag styr var och en av 1, 024 enskilda ljuskällor i en 32 x 32 LED -matris.

Så fungerar det att Arduino tänder en LED i taget, medan den analoga ingången används för att övervaka förändringar i ljussensorn. Detta gör att Arduino kan testa om sensorn kan "se" en viss lysdiod. Denna process upprepas snabbt för var och en av de 1 024 enskilda lysdioderna för att snabbt generera en karta över synliga pixlar.

Om ett föremål placeras mellan LED -matrisen och sensorn kan Arduino fånga silhuetten av det objektet, som lyser upp som en "skugga" när inspelningen är klar.

BONUS: Med mindre tweaks kan samma kod användas för att implementera en "digital stylus" för målning på LED -matrisen.

Steg 1: Delar som används i denna byggnad

Delar som används i denna byggnad
Delar som används i denna byggnad
Delar som används i denna byggnad
Delar som används i denna byggnad

För detta projekt använde jag följande komponenter:

  • En Arduino Uno med brödbräda
  • 32x32 RGB LED -matris (antingen från AdaFruit eller Tindie)
  • 5V 4A nätadapter (från AdaFruit)
  • Kvinnlig likströmadapter 2,1 mm jack till skruvplint (från AdaFruit)
  • En klar, 3 mm TIL78 fototransistor
  • Bygelkablar

AdaFruit säljer också en Arduino -sköld som kan användas istället för bygelkablar.

Eftersom jag hade några Tindie -poäng fick jag min matris från Tindie, men matrisen från AdaFruit verkar vara identisk, så antingen borde en fungera.

Fototransistorn kom från mina decennier gamla samlingar av delar. Det var en tydlig 3 mm del märkt som en TIL78. Såvitt jag kan se är den delen avsedd för IR och kommer antingen ett klart fodral eller ett mörkt hölje som blockerar synligt ljus. Eftersom RGB LED -matrisen släcker synligt ljus måste den klara versionen användas.

Denna TIL78 tycks ha avbrutits, men jag föreställer mig att detta projekt skulle kunna göras med moderna fototransistorer. Om du hittar något som fungerar, meddela mig så uppdaterar jag denna instruerbara!

Steg 2: Anslutning och testning av fototransistorn

Anslutning och testning av fototransistorn
Anslutning och testning av fototransistorn

Normalt skulle du behöva ett motstånd i serie med fototransistorn över kraft, men jag visste att Arduino hade förmågan att möjliggöra ett internt uppdragningsmotstånd på någon av stiften. Jag misstänkte att jag kunde dra nytta av det för att ansluta fototransistorn till Arduino utan några ytterligare komponenter. Det visade sig att min aning var rätt!

Jag använde ledningar för att ansluta fototransistorn till GND- och A5 -stiften på Arduino. Jag skapade sedan en skiss som satte A5 -stiftet som en INPUT_PULLUP. Detta görs normalt för switchar, men i detta fall ger det ström till fototransistorn!

#define SENSOR A5

void setup () {Serial.begin (9600); pinMode (SENSOR, INPUT_PULLUP); } void loop () {// Läs analogt värde kontinuerligt och skriv ut det Serial.println (analogRead (SENSOR)); }

Denna skiss skriver ut värden till den seriella porten som motsvarar den omgivande ljusstyrkan. Genom att använda den praktiska "Serial Plotter" från "Verktyg" -menyn i Arduino IDE kan jag få en rörlig tomt med omgivande ljus! När jag täcker och avslöjar fototransistorn med mina händer, rör sig handlingen upp och ner. Trevlig!

Den här skissen är ett bra sätt att kontrollera om fototransistorn är ansluten med rätt polaritet: fototransistorn blir mer känslig när den kopplas ihop i en riktning kontra den andra.

Steg 3: Anslut matrisbandskabeln till Arduino

Anslutning av matrisbandkabeln till Arduino
Anslutning av matrisbandkabeln till Arduino

För att ansluta matrisen till Arduino gick jag igenom den här praktiska guiden från Adafruit. För enkelhets skull klistrade jag in diagrammet och pinouts i ett dokument och skrev ut en snabbreferenssida som jag skulle använda när jag kopplade ihop allt.

Se till att fliken på kontakten matchar den i diagrammet.

Alternativt, för en renare krets, kan du använda RGB -matrisskölden som AdaFruit säljer för dessa paneler. Om du använder skölden måste du lödda i ett huvud eller ledningar för fototransistorn.

Steg 4: Anslut matrisen

Ansluter matrisen
Ansluter matrisen
Ansluter matrisen
Ansluter matrisen
Ansluter matrisen
Ansluter matrisen

Jag skruvade ner gaffelterminalerna på matrisledningarna till jackadaptern och såg till att polariteten var korrekt. Eftersom en del av terminalerna lämnades utsatta, svepte jag in det hela med eltejp för säkerhets skull.

Sedan kopplade jag in strömkontakten och bandkabeln, var noga med att inte störa bygelns ledningar i processen.

Steg 5: Installera AdaFruit Matrix Library och testa matrisen

Installera AdaFruit Matrix Library och testa matrisen
Installera AdaFruit Matrix Library och testa matrisen

Du måste installera "RGB -matrispanelen" och AdaFruit "Adafruit GFX -biblioteket" i ditt Arduino IDE. Om du behöver hjälp med detta är handledningen det bästa sättet att gå.

Jag föreslår att du kör några av exemplen för att se till att din RGB -panel fungerar innan du fortsätter. Jag rekommenderar exemplet "plasma_32x32" eftersom det är ganska fantastiskt!

Viktig anmärkning: Jag upptäckte att om jag startade Arduino innan jag kopplade in 5V -matningen till matrisen skulle matrisen tändas svagt. Det verkar som att matrisen försöker dra kraft från Arduino och det är definitivt inte bra för det! Så för att undvika överbelastning av Arduino, slå alltid på matrisen innan du sätter på Arduino!

Steg 6: Ladda matrisskanningskoden

Andra pris i Arduino -tävlingen 2019

Rekommenderad: