The Electronics Project
Elektronicaconcepten opnieuw bekijken en proberen een processor te maken. Een studierepository. Het doel is om PCB-ontwerp en digitale schakelingen te leren. Verilog, Arduino, ESP32 en Raspberry PI.
Het Electronics Project
Een studierepository. Het doel is om PCB-ontwerp en digitale schakelingen te leren. Verilog, Arduino, ESP32 en Raspberry PI. Ik zal hier mijn voortgang blijven posten.
Het uiteindelijke doel is om een echte schakeling of PCB te printen.
Om daar te komen, werk ik eerst de basisprincipes door. De Arduino-schetsen zijn bedoeld om vertrouwd te raken met fysieke componenten: knoppen, LED's, signalen lezen, dat soort dingen. De Verilog-kant is bedoeld om digitale logica dieper te begrijpen — hoe basisbouwstenen zoals registers, tellers en geheugen daadwerkelijk samenwerken.
De processor wordt gemaakt zodat ik op de meest pijnlijke manier mogelijk kan leren hoe elektronica op het laagste niveau werkt.
Want blijkbaar is lijden goed.
SAP-1 — Simple as Possible Computer (referentie): https://karenok.github.io/SAP-1-Computer/
Structuur
arduino/ Fysieke hardware-experimenten op Arduino
processor/ Verilog-modules — digitale logica-experimenten
Processor (Verilog)
Gebouwd en gesimuleerd met Digital. Het volledige schema staat in main.dig.
| Module | Bestand | Beschrijving |
|---|---|---|
| 8-bit Adder | adder_8bit.v |
Telt twee 8-bit waarden op met carry in/uit |
| 8-bit Register | register_8bit.v |
Geklokt register met schrijftoestemming en synchrone reset |
| Program Counter | program_counter.v |
Verhoogt elke kloktik, ondersteunt stop en reset |
| Geheugen | memory_256x8.v |
256-byte synchroon RAM |
| 8-naar-1 Mux | mux_8_to_1.v |
Selecteert een van 8 datalijnen |
| 8-bit Teller | counter_8bit.v |
Telt omhoog bij elke klok, met laden en reset |
| Do Once | do_once.v |
One-shot latch — laat een signaal precies één keer door |
Arduino-schetsen
1. Het aan-uit apparaat (volledig nutteloos)
Beschrijving:
Een eenvoudig schakelapparaat met een fysieke knop en twee LED's (rood en blauw).
Gedrag:
- Bij inschakelen gaat de rode LED branden.
- Het indrukken van de knop schakelt de rode LED uit en de blauwe LED aan.
- Het loslaten van de knop keert de toestand terug.
Schakeling: knop op pin 9 (INPUT_PULLUP), blauwe LED op pin 2, rode LED op pin 7.
Mijn voorouders wachtten op het moment dat dit apparaat werd uitgevonden. En hier zijn we dan eindelijk.
2. Knoptest
Zet een pin HOOG. Dat is alles.
3. Leestest
Leest een pin en print de waarde naar serieel. Basale introductie.
4. Verkeersregeling
Beschrijving:
Een 3-toestands automatisch verkeerslicht. Doorloopt groen → geel → rood op een timer. Knop onderbreekt en dwingt direct rood af (voetgangersoversteekplaats).
Gedrag:
- Groen (toestand 0): groene LED aan gedurende 5s, doorloopt 2 cycli (10s totaal), gaat dan naar geel.
- Geel (toestand 1): rode + groene LED's aan (mengen tot geel), zoemer piept gedurende 2s, gaat dan naar rood.
- Rood (toestand 2): rode LED aan gedurende 5s, doorloopt 2 cycli (10s totaal), gaat dan terug naar groen.
- Knopdruk op elk moment: springt direct naar rood met 500ms debounce.
- Knopdrukken worden halverwege de vertraging gecontroleerd (
responsiveDelay), zodat het signaal altijd onderbreekbaar is.
Schakeling: knop op pin 9 (INPUT_PULLUP), rode LED op pin 2, groene LED op pin 3, blauwe LED op pin 4, zoemer op pin 7.
