Bygga en elektronisk score keeper/förvaringsbox (14 / 15 steg)
Steg 14: Hur det fungerar (teori)
Hjärnan hos enheten är packat in i en ATTiny2313 mikro-controller. Detta chip är del av samma familj av enheter som ATMega328 används i arduino-plattformen. Som det är större kusin, har ATTiny2313 stift som kan användas som indata för att läsa saker som knapptryckningar eller utdata till kontroll saker som lysdioder. En liten mängd icke-volitile minne lagrar kod som det körs automatiskt när chipet är påslagen.
Skillnaden är att AtTiny har mindre stift och minne än AtMega328.
En AtTiny är lätt kunna köra en sju segment LED display, men det finns 8 i detta projekt, två siffror för varje spelare position. Eftersom varje bildskärm har 8 lysdioder (7 segment plus decimalkomma) som betyder den behöver för att kunna styra separat 64 olika lysdioder! Det är gör-stånd med avancerad teknik, men ledningarna är komplicerad och kräver ett antal extra transistorer och resistorer. Dessa tekniker kräver också mikro-controller att tillbringa större delen av det dags uppdatera displayerna, kan snabbt blinkande dem på och av snabbare än det mänskliga ögat se.
Det är där Max7219 kommer in. Detta chip är utformad för att göra hela jobbet för att köra upp till 64 lysdioder vilket är exakt det antal behövs av denna krets. Max7219 har en uppsättning av 8 stift som är kopplade till varje segment av alla visar en annan anger för att tillämpa makt varje bildskärm separat. På så sätt det kan ställa in (till exempel) alla lampor som överensstämmer med nummer 8, slå på displayen 1 kort och sedan flytta på till att lysdioderna för display 2. Om det ändrats lysdioderna för att visa en 2 och snabbt slås den på och av, skulle omväxlande med display 1, en "28" visas. Det gör detta för alla 8 skärmar (2 X 4 spelare) så snabbt att det ser ut som är alla på samtidigt.
Max7219 håller reda på vilka antal går på vilken display och håller upprepa det cykeln tills den får ett kommando från mikro-controller att ändra en av dem. ATTiny2313 förbinds av 3 rader och kan skicka kommandon via seriella data som "ändra siffran 4 visas ett"E", ändra siffran 3 att visa ett"L"".
Med allt det arbetet för att kontrollera lysdioderna avlästa av Max7219, är alla ATtiny2313 har att göra klocka för knappar tryckas och skicka kommandon till Max7219 när det behövs att ändra vad som visas. I det här fallet är ATtiny2313 faktiskt lite övermannade för vad den behöver göra.
Det är all tråkig teori ur vägen, ser nästa mina tankar och funderingar om detta projekt.