Innehållsförteckning:

Tryckknapps LED -matris: 4 steg
Tryckknapps LED -matris: 4 steg

Video: Tryckknapps LED -matris: 4 steg

Video: Tryckknapps LED -matris: 4 steg
Video: Control Speed of Stepper Motor using L298N with Push Button Switches STLPB-01 2024, Juli
Anonim
Tryckknapp LED Matrix
Tryckknapp LED Matrix

Detta projekt kan ses som ett annat inledande Arduino -projekt som är något mer avancerat än ditt typiska "blinkande LED -projekt". Detta projekt innehåller en LED -matris, tryckknappar, skiftregister (som kan spara stift på ditt Arduino -kort) och ett nyckelbegrepp som kallas multiplexing. Jag hoppas att du tycker att handledningen är upplysande och utmanar dig själv att förbättra den!

Tillbehör

(1x) Arduino Uno

(5x) Taktila tryckknappar

(2x) 0,1 uF kondensatorer

(2x) 1 uF -kondensatorer

(8x) 1k motstånd

(5x) 10k motstånd

(2x) 74HC595 skiftregister

Jumper Wires

Svart tråd

Röd tråd

Steg 1: Steg 1: Gör en LED -matris

Steg 1: Gör en LED -matris
Steg 1: Gör en LED -matris
Steg 1: Gör en LED -matris
Steg 1: Gör en LED -matris
Steg 1: Gör en LED -matris
Steg 1: Gör en LED -matris

Handledningen jag använde för att göra 8x8 LED -matrisen i det här projektet hittar du här. Det finns vanliga konfigurationer för en LED -matris:

a) Anod med vanlig rad

b) Katod med vanlig rad

Eftersom jag använde matrisen Common Row Cathode -arrangemang kommer jag främst att diskutera det här och du kan utvidga samma logik till Common Row -anodarrangemanget. I katodarrangemanget med vanlig rad är lysdiodernas katoder (eller negativa terminaler som är det kortare benet på en lysdiod) sammankopplade i rader medan anoderna (eller positiva terminaler som är det längre benet på en lysdiod) är anslutna ihop i kolumner. För att adressera en viss lysdiod, dra i katodraden där LED -katoden är låg och dra i anodkolonnen som LED -anoden är hög.

Obs! När du gör LED -matrisen som visas i länken ovan, se till att ansluta anodkolumnerna med 1k ohm -motstånden innan du applicerar någon spänning på lysdioderna.

Steg 2: Steg 2: Anslutning av tryckknappar och skiftregister

Steg 2: Anslutning av tryckknappar och skiftregister
Steg 2: Anslutning av tryckknappar och skiftregister
Steg 2: Anslutning av tryckknappar och skiftregister
Steg 2: Anslutning av tryckknappar och skiftregister
Steg 2: Anslutning av tryckknappar och skiftregister
Steg 2: Anslutning av tryckknappar och skiftregister
Steg 2: Anslutning av tryckknappar och skiftregister
Steg 2: Anslutning av tryckknappar och skiftregister

Ledningarna för tryckknapparna och skiftregistren visas ovan. Jag vill notera att skiftregistren i kretsschemat inte visar marken (stift 8 på IC) och Vcc eller strömförsörjning (stift 16 på IC) stiften för chipsen; jordstiftet är anslutet till GND -stiftet på Arduino -kortet och Vcc är anslutet till 5V -stiftet på Arduino -kortet. Vcc -stiftet i varje skiftregister är också anslutet till en 0.1uF kondensator ansluten till jord.

Obs! Utgångarna från varje skiftregister listas som QA till QH (ignorera QH*). De listas i termer av den minst signifikanta biten (LSB) (för QA) till den mest signifikanta biten (MSB) (för QH) dvs QA skulle styra den 0: e raden eller kolumnen etc.

Steg 3: Steg 3: Ladda upp koden

Koden för att styra LED -matrisen är bifogad denna handledning. Jag försökte kommentera så mycket av koden som möjligt så det skulle vara mycket tydligt hur programmet fungerar. Huvudbasen för programmet är att det finns en matris som håller reda på vilka lysdioder som ska vara på eller av. För att de olika lysdioderna ska visas korrekt utan att oavsiktligt sätta på oönskade dioder är att använda ett koncept som kallas multiplexing. Multiplexing är i huvudsak att lysa upp enskilda lysdioder i särskild rad medan alla andra lysdioder i andra rader och sedan göra samma sak för de återstående raderna. Tricket är att om lysdioderna går igenom raderna tillräckligt snabbt kan dina ögon se att enskilda rader tänds en i taget. Om du vill utforska fler sätt att lura dina ögon med lysdioder, kanske du vill titta på begreppet persistens av syn (lätt sökbart på Google eller Instructables).

Sättet som anodkolumnerna och katodraderna uppdateras är via en användardefinierad funktion som kallas 'UpdateShiftRegisters'. Denna funktion vrider först låspinnen, som styr om en ny byte (8 bitar) skickas till utgången, låg så inga ändringar i utgångarna är möjliga medan nya bitar skrivs till chipet. Med hjälp av en inbyggd Arduino-funktion som heter 'ShiftOut', som specifikt hanterar att skicka data till skiftregister, skriver programmet vilken (katod) rad som skulle vara låg och vilka (anod) kolumner som ska vara höga. Slutligen dras låspinnen högt för att uppdatera utgången (lysdioderna).

Steg 4: Ytterligare information/resurser

Här är några länkar till webbplatser eller böcker som kan ge ytterligare information om detta projekt:

learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code

www.arduino.cc/en/tutorial/ShiftOut

www.ti.com/lit/ds/symlink/sn74hc595.pdf

www.youtube.com/watch?v=7VYxcgqPe9A

www.youtube.com/watch?v=VxMV6wGS3NY

Komma igång med Arduino, andra upplagan av Massimo Banzi

Rekommenderad: