{
"$type": "site.standard.document",
"canonicalUrl": "https://bisse.nl/blog/posts/2021/01-18-project01",
"path": "/posts/2021/01-18-project01",
"publishedAt": "2021-01-18T11:00:00.000Z",
"site": "at://did:plc:t4bzqfd4wo3ukq62opjuvy2u/site.standard.publication/3mpeliratc624",
"textContent": "Repost van Tumblr. Sources op github.\n\nDit is m'n eerste project op een breadboard.\n\nDe schakeling stuurt LEDs aan voor het tonen van berichten\ngecodeerd als reeksen van lichtsignalen. De eerste versie stuurde één\nLED aan die een SOS uitzond.\n\n\n\nDe uiteindelijke versie heeft zeven LEDs waarmee signaalreeksen van maximaal\n128 stappen weergegeven kunnen worden. Er is plaats voor 64\nverschillende reeksen, die geselecteerd kunnen worden met\nDIP-schakelaars.\n\nDe schakeling bestaat uit de volgende delen:\n\n 1. Een timer rond de 555-chip, naar het voorbeeld van Ben Eater dat hij\n maakte voor zijn 8-bit computer. Zie\n Clock module. Ik gebruik alleen het\n automatische deel. Met de potmeter is de frequentie van de timer te\n variëren van ongeveer 1Hz tot 21Hz.\n 2. De timer stuurt een teller van 7 bits aan. Deze telt dus tot en met\n 127, en springt daarna weer op nul.\n 3. De teller stuurt de eerste zeven adreslijnen van een EEPROM aan, die\n beschikt over dertien adreslijnen. De overige zes adreslijnen worden\n bediend met DIP-schakelaars. <BR>\n Van de 8bit uitvoer van de EEPROM wordt de eerste bit gebruikt om\n de teller terug naar nul te zetten. De overige zeven bits gaan\n naar zeven LEDs.\n\nDe EEPROM wordt geprogrammeerd met een Arduino Nano, naar het\nvoorbeeld van Ben Eater. Zie\nBuild an Arduino EEPROM programmer.\nBen Eater gebruikte een EEPROM met elf adreslijnen. Die chip is niet\nmeer leverbaar. Ik gebruik de opvolger met dertien adreslijnen.\nAfgezien van twee extra adreslijnen, en de iets andere ordening van de\npinnen, is mijn programmeermodule gelijk aan het voorbeeld.\n\nIn het geheugen is plaats voor 64 patronen van elk maximaal 128\nstappen. De bits 2 t/m 7 van elke stap sturen de zeven LEDs aan. Een\npatroon dat korter is dan 128 stappen wordt afgesloten met een byte\nwaarvan alleen het eerste bit gezet is. Hiermee wordt de teller teruggezet\nnaar de waarde nul. De resterende van de 128 bytes krijgen dezelfde\nwaarde, zodat bij het schakelen van een lang patroon naar een kort\npatroon, waarbij de teller al voorbij de lengte van het korte patroon\nis, altijd terug gesprongen wordt naar het begin.\n\nDe DIP-schakelaars staan ondersteboven, omdat wanneer een schakelaar op\naan staat dat leidt tot een nul op de EEPROM. \n\nAanvankelijk werkte het niet. Ik kreeg rare signalen van de LEDs te\nzien, niet het patroon dat ik geprogrammeerd had. Ik gebruikte toen\nnog maar vier adreslijnen van de EEPROM. De overige moesten op aarde\naangesloten worden, maar in de kluwen van draden had ik er eentje over\nhet hoofd gezien. Een adreslijn die niet is aangesloten kan blijkbaar\nwillekeurige waardes aannemen. Toen ik dit probleem had verholpen\nwerkte het precies zoals ik wilde. \n\nIk ben tevreden over het resultaat. Het is een propvol breadboard\ngeworden. De potmeter en de DIP-schakelaars hebben weinig grip, en\nmoet je goed tegenhouden bij de bediening, anders vallen ze eruit.\nMisschien kan ik daar nog wat op verzinnen.",
"title": "Project 01 — Morse"
}