LEGO T-korsningen trafik lysdiod (20 / 27 steg)
Steg 20: Kretsscheman
Schematiska & skärbräda
Första bilden är schematiskt för kretsen. Om du inte vet hur man läser en schematisk, kan det vara klokt att hitta en webbplats eller bok som kan hjälpa dig. Anteckningar om bilden kommer att hjälpa dig.
För dem som vill avstå från LEGO hela delen av byggande, har jag inkluderat en skärbräda layout av T-korsningen trafik ljus.
Den tredje bilden är en närbild av en Arduino Nano, så att du kan bekanta dig med pin layout, vilket kommer att göra stegen som följer lättare för att förstå.
Du kan läsa mer om nano här: http://www.arduino.cc/en/Main/ArduinoBoardNano
För dem som vill bygga en cross-korsningen, har jag inkluderat en schematisk och skärbräda layout för det också. Den passar bara knappt på en enda skärbräda.
LEDDE matrisen
Titta noga på schematiskt och du ser att lysdioderna är ordnade i en matris. Detta är ännu mer tydligt i den kors-korsning schematiskt. Nano har tillräckligt Input/Output stiften för att driva alla 10 lysdioder direkt, men en matris är kan minska antalet utgångsstift som behövs. För T-korsningen fungera sju utgångsstift 10 lysdioder; för cross-korsningen kör åtta stift 16 lysdioder. (Som lämnar extra stift för att lägga till en tryckknapp senare vidare till förändring lägen, samt eventuellt lägga till övergångsställe ljus. Dessa är bara idéer, jag har inte programmerat något ännu)
Ihållande Vision
Med en matris, kan bara en uppsättning trafikljus tändas i taget.
Använda Persistence of Vision, kan vi lura ögat att tro alla tre trafikljus som lyser på samma gång. Först, den vänstra trafikljusen lyser för ett litet ögonblick av tid, då en på toppen av T och sedan rätta. Upprepa denna cykel snabbt nog och det visas för ögat som alla trafikljus på samtidigt.
Alla tre lamporna måste vara cyklade minst 60 gånger per sekund för att lura ögat. Detta kallas en uppdateringsfrekvens. (I videon på sidan intro, 60 gånger per sekund var inte tillräckligt snabb för att lura videokameran: de verkar flimra.)
Det finns 1000ms (millisekunder) i 1 sekund: 1000 / 60 är ungefärligt 16ms. Alla tre lyktstolpar måste vara tända inom 16ms. Beräkning av 16ms / 3 lyktstolpar är ca 5ms. Varje lyktstolpe kommer att lysa för 5ms ut 16ms, 60 gånger i sekunden.
Nummer 5 visas i koden som den DISPLAY_PERIOD konstanten. Göra det numret större och du börjar se ljuset flimrar.
För ett kors-korsningen, 16ms / 4 lyktstolpar är 4ms.
Matrix drift
De ledningar som går till motstånden är enheten fodrar. När enheten linjerna är alla på marken, noll volt, lyser ingen lysdioder. Om vi gör en rad logiska hög, positiv spänning, driver vi denna lyktstolpe.
Katod linjerna är på baksidan av enheten raderna. Normalt kommer dessa att logiska hög, positiv spänning. En LED som tar emot positiv spänning på båda stiften lyser inte: ström kan inte flöda. Ta en av raderna katod till logiska låg eller noll volt, ström kan flöda från positiva anoden genom lysdioden till noll spänning katoden: det kommer att lysa upp. Genom programvara kan vi kontrollera varje LED i sin tur.
(Nuvarande faktiskt flöden från negativt till positivt, men det är enklare att tänka på det från den positiva Polen på batteriet, genom LED, till den negativa terminalen av batteriet.)