Nyheter i Android, Telefoner, Prylar Och Recensioner

Uppgradera din julkrans med en rörelseaktiverad LED-matris

Julen är här igen, och oavsett om det är din favorithögtid på året eller om den ger dig kallsvett, så börjar dekorationerna gå upp. I år, varför inte införliva lite DIY-teknik i dina dekorationer för att få dem att sticka ut?

I det här projektet kommer vi att bygga en väderbeständig, rörelseaktiverad 8 x 8 LED-matris från grunden… för under $20. Den är designad för att passa i mitten av en vanlig juldörrkrans, även om den kan användas var som helst i huset. Och eftersom den är batteridriven, var som helst borta från huset också!

Delarlista

För detta projekt behöver du:

Arduino. 64 x röda lysdioder. 8 x 220 Ohm motstånd. PIR rörelsesensor. 1 bit prototypbräda. Den som användes här var 9 x 7 cm, men du kan använda vilken storlek du vill. 7-12v batteri. Ett enkelt batteripaket används här av budgetskäl, men en mobil bankladdare kan hålla ännu längre. Blandade korta bitar av tråd. Tupperware box eller liknande väderbeständig kapsling. Se till att den blir tillräckligt stor för att passa alla dina komponenter inuti! Julkrans. Alla duger, se bara till att höljeslådan får plats inuti den. Lödkolv och lod.

Även om det inte är absolut nödvändigt eftersom du kan löda komponenterna direkt till Nano, fann jag också en liten brödbräda mycket användbar när jag testade. En varm limpistol hjälper också till att sätta ihop alla delar.

Det här projektet kräver ganska mycket lödning, och som nybörjare kan det verka skrämmande. Jag personligen är fortfarande väldigt mycket nybörjare inom lödning och tyckte att det inte var så utmanande eller tidskrävande som det verkar. Om du också är ny på lödning här är några bra tips som kan hjälpa dig.

Om du verkligen inte är sugen på tanken att löda är detta projekt även möjligt med LED-strips, eller en färdig LED-matris som du kanske har i ditt startpaket. Vissa kodjusteringar kommer att vara nödvändiga om du bestämmer dig för att gå den vägen.

Konfigurera Arduino

Vi börjar med kretsschemat för Arduino och kablarna vi kommer att koppla till vår PIR-sensor och LED-matris.

Inuti matrisen

Nu ska vi göra vår 8 x 8 LED-matris. Det är en bra idé att börja med att skapa en rad och en kolumn i matrisen, för att se till att den är exakt där du vill ha den på prototyptavlan.

På bilden ovan är alla lysdioder placerade så att anoderna (det längre, positiva benet) är mot toppen av protoboarden. Detta är viktigt, eftersom vi kommer att skapa kolumner med gemensamma anoder genom att sammanfoga dem, och rader med gemensamma katoder (det kortare, negativa benet). Att få detta just nu kommer att spara huvudvärk senare!

Vi ska bygga en gemensam rad katodmatris, detta diagram visar hur allt hänger ihop.

Det kan se lite skrämmande ut till en början, men det är en ganska enkel konfiguration. I varje rad är alla katoderna sammanfogade från höger till vänster och fästs sedan på en av våra Arduino-stift. Efter detta gör vi samma sak för varje kolumn av anoder. På så sätt, beroende på vilken kolumn vi sätter ström till, och vilken rad vi kopplar till jord, kan vi slå på vilken enskild lysdiod som helst i arrayen.

Relaterad  "Tack för betalt betatest": Free PUBG började med tekniska problem och negativa recensioner

Låt lödningen börja

Börja med att placera din första rad med lysdioder. Se till att alla anoder är vända uppåt och vänd på den. Jag upptäckte att att lägga till ytterligare en lysdiod i varje hörn och att fästa en annan bit protoboard ovanpå med hjälp av en elastisk sladd hjälpte till att hålla allt på plats.

Böj nu katodbenet (korta) på varje lysdiod en efter en åt vänster så att de alla överlappar varandra. Det är lättast att börja från vänster sida och arbeta höger. Om du använder en större bit av protoboard kan du löda dem på kortet först och koppla ihop dem med hjälp av pads. Var försiktig så att du inte ansluter någon av katoderna till några andra linjer på kortet eller någon av anoderna!

Upprepa denna process för alla åtta raderna, och när du är klar bör du ha något som ser ut ungefär så här:

Hoppande anoder!

Anodernas kolumner är lite krångligare. I diagrammet ovan kröks anoderna varje gång de korsar en rad med katoder. Det beror på att de inte kan röra raderna alls. Vi måste böja anoderna över katodraderna och fästa dem vid varandra. Du kanske upptäcker att det hjälper mycket att använda en penna för att böja benen.

Gör detta för varje rad av anoder och fäst ett motstånd till varje toppanod. Du kommer förmodligen att ha lättare att sätta in motståndet i nästa hål i protoboarden och foga ihop dynorna med hjälp av lod. Du borde nu ha något sånt här:

Grattis! LED-matrisen är klar. Kontrollera din lödning noggrant i detta skede för att se till att det inte finns några brott och att ingen av kolumnerna vidrör raderna. Oroa dig inte om det inte ser vackert ut, vi behöver bara att det fungerar! Du kan kontrollera varje lysdiod individuellt nu genom att fästa 5V till någon av kolumnändarna och jord till någon av radändarna.

Förutsatt att allt är bra, anslut kablar till varje kolumn och varje rad och fäst dem på din Arduino som visas i diagrammet ovan.

Låt oss få kodning

Öppna Arduino IDE och välj ditt kort och port. Om du är ny på Arduino, kolla in den här kom igång-guiden.

Ange denna kod i editorn. Det är ganska tät kod om du inte är bekant med den, men den är tillgänglig här helt kommenterad för att hjälpa dig att förstå hur det fungerar.

const int row[8] = {
2,3,4,5,6,7,8,9
};
const int col[8] ={
10,11,12,14,15,16,17,18
};
int pirPin = 19;
int pirState = LOW;
int val = 0;
bool pirTrigger = false;
const int pirLockTime = 12000;
int pirCountdown = pirLockTime;
int pixels[8][8];
const int refreshSpeed = 500;
int countDown = refreshSpeed;
int currentCharIndex = 0;
typedef bool CHAR_MAP_NAME[8][8];
const CHAR_MAP_NAME blank = {
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
};

const CHAR_MAP_NAME threedownthreein = {
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 1 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},
};
const int noOfFrames = 5;
const CHAR_MAP_NAME *charMap[noOfFrames] ={
&blank,
&threedownthreein,
&blank,
&blank,
&threedownthreein
};
void setup(){

for (int i=0;i<8;i++){
pinMode(row[i], OUTPUT);
pinMode(col[i],OUTPUT);
//motion sensor
pinMode(pirPin, INPUT);
digitalWrite(col[i], LOW);
}
}
void screenSetup(){
const CHAR_MAP_NAME *thisMap = charMap[currentCharIndex];
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++) { bool on = (*thisMap)[x][y]; if(on) { pixels[x][y] = HIGH; } else { pixels[x][y] = LOW; } } } currentCharIndex++; if(currentCharIndex>=noOfFrames){
currentCharIndex = 0;
}

}
void refreshScreen(){

for (int currentRow = 0; currentRow < 8; currentRow++){
digitalWrite(row[currentRow], LOW);
for (int currentCol = 0; currentCol < 8; currentCol++){
int thisPixel = pixels[currentRow][currentCol];
digitalWrite(col[currentCol], thisPixel);

if (thisPixel == HIGH) {
digitalWrite(col[currentCol], LOW);
}
}
digitalWrite(row[currentRow], HIGH);
}

}
void loop(){

val = digitalRead(pirPin);
if (val == HIGH){
pirTrigger = true;
}

else if (val == LOW && pirCountdown <=0) { pirTrigger=false; pirCountdown = pirLockTime; } if(pirTrigger==true && pirCountdown > 0)
{
refreshScreen();
countDown--;
pirCountdown--;

if(countDown <= 0)
{
countDown = refreshSpeed;
screenSetup();

}

}
}

De viktiga delarna att förstå är:

Relaterad  Hur man skapar anpassade konstverk för dina Spotify-spellistor

De refreshSpeed variabel. Denna variabel bestämmer hur tiden mellan varje skärmuppdatering. Ett större antal innebär en längre väntetid.

Konst CHAR_MAP_NAMEs. Det är här du lägger varje teckenkarta (eller ram om det är lättare att tänka på dem på det sättet) du vill visa.

De noOfFrames variabel. Detta avgör hur många bildrutor som visas i en hel uppspelning. Observera att det kan skilja sig från antalet teckenkartor. Om du till exempel vill visa “A CAT” behöver du bara definiera fyra distinkta ramar: blank, en A, a C och a T.

Nu, när rörelsesensorn upptäcker rörelse, bör LED-skärmen blinka LED-lampan tre ner och tre in från det övre vänstra hörnet. Om det inte visas korrekt, kontrollera dina kablar igen för att se till att allt är på rätt plats! När du lägger till din egen bild eller ditt eget meddelande kan det klippas av tidigt eller spelas för länge. Försök att ändra pirLockTime variabel tills den spelar så länge du vill.

Processen att lägga till varje ram till LED-skärmen kan vara lite tråkig, så vi har skapat det här kalkylbladet för att göra det lite lättare att skapa text och bilder för din LED-matris (gör en kopia av Google Sheet så att du kan redigera den ).

Med hjälp av kalkylarket kan du kopiera dina skapelser direkt till koden.

Make It Brave the Elements

Nu när vi har en fungerande LED-matris behöver vi ett sätt för den att överleva vintervädret. Även om den här metoden inte kan stå emot en tropisk storm eller att dunkas ner i poolen, borde den vara tillräckligt för att hålla all elektronik säker från väder och vind.

Jag använde en rund Tupperware-låda som är 15 cm i diameter och 6 cm djup eftersom den passar mina komponenter perfekt. Skär ett fönster i locket något större än din LED-matris och fäst en genomskinlig plastfilm på det, se till att det inte lämnas några utrymmen för vätska att komma in. Kraftig plast från vissa förpackningar skulle fungera bäst, men det här var allt jag hade. Du kan också fästa några fästen för protoboarden, även om båda jobben lätt kan göras med stark vattentät tejp.

Relaterad  Introduktion av sökordstäthetskontroll – Analysera sökordstäthet för att förbättra rankningen

Gör sedan ett litet hål under fönstret och vidga det sedan försiktigt och långsamt tills din PIR-sensor bara kan passa igenom. Du vill att den ska sitta så tätt som möjligt.

Fäst din PIR-sensor och fyll i eventuella luckor du kan se med tejp eller varmt lim.

Rensa bort tejp eller lim som kan hindra lådan från att stänga ordentligt och lägg till alla dina komponenter i lådan tillsammans med ditt batteri. Här användes ett enkelt AA-batteripaket, kopplat direkt i VCC-stiftet på Nano. Några små bitar av kork lades till på utsidan av höljet för att hjälpa till med att hänga upp byggnaden i mitten av kransen.

Och vi är klara

När lådan är förseglad, häng den med din julkrans och vänta på dina besökares reaktioner på ditt högteknologiska sub $20 personliga välkomnande! Du kan till och med gå ett steg längre och skapa fantastiska DIY-dekorationer för någon annanstans i huset också!

I det här projektet har vi byggt ett fristående LED-matrissystem från grunden, som är rörelseaktiverat och kan överleva att vara ute i allt utom det mest dåliga vädret. Den här konstruktionen kommer att vara användbar långt efter att semesterperioden är över i andra projekt, och samma teknik kan användas för att skapa billiga väderbeständiga höljen för andra projekt också.

Har du byggt något för att ge din jul en DIY-twist? Planerar du några julklappar med DIY-tema i år? Låt oss veta i kommentarerna nedan!

Om författaren

Ian Buckley (220 publicerade artiklar)

Ian Buckley är en frilansjournalist, musiker, artist och videoproducent bosatt i Berlin, Tyskland. När han inte skriver eller står på scen, pysslar han med DIY-elektronik eller kod i hopp om att bli en galen vetenskapsman.

Mer från Ian Buckley

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera

Table of Contents