TOEKOMSTSTRAAT 75 8790 WAREGEM
Geïntegreerde Proef
Elektriciteit – elektronica - ICT
Split Flap Klok
Naam/namen van de leerling(en): Luca Vervenne
Klas: 6ICT
Studierichting: Industriële Informatica Schooljaar: 2021-2022
Technische mentor: Dhr. Van Quickelberghe
Taalmentor: Dhr. Durnez
Split-flap Klok GIP 6 ICT
1. Voorwoord
Split-flap Klok GIP 6 ICT
Inhoud
1. Voorwoord... 2
2. Inleiding ... 4
3. Blokschema... 5
4. Hardware ... 6
5. Software ... 8
6. Voorontwerp ... 9
7. Ontwerp hardware ... 13
7.1 Schema ... 14
7.2 Bespreking schema ... 14
7.3 Print ... 14
10. Kostprijsberekening ... 16
11. Besluit ... 17
12. Bronnen ... 18
13. Bijlagen ... 19
Split-flap Klok GIP 6 ICT
2. Inleiding
Split-flap Klok GIP 6 ICT
3. Blokschema
Blokschema deelproject
Dit is het blokschema voor mijn split-flap klok hoe die wordt aangestuurd.
- De MCU krijgt spanning van de voeding
- De MCU wordt geprogrammeerd door de PC en communiceert ook met de PC via de MAX3232 zodanig dat u de klok kan instellen.
- De RTC of de Real Time Clock gebruik ik voor exacte timing voor mijn drivers op een moment aan te sturen. Ik gebruik de RTC ook nog voor mijn wekker in te stellen.
- De MCU stuurt de stappenmotordrivers aan die de stappenmotors laten draaien tot een bepaalde werking. Deze zijn aangesloten met een Vcc van 5v een ground en vier pinnen om de vier spoelen van de stappenmotors aan te sturen.
- De motors laten de assen draaien van de splitflap klok en die assen laten één segment vallen waardoor een bepaalde waarde tevoorschijn komt en die dus in het gehele een uur en het aantal minuten toont.
- De buzzer zorgt voor geluid wanneer de ingestelde wekker afgaat.
Split-flap Klok GIP 6 ICT
4. Hardware
De MCU/ Microcontroller
Ik gebruik de Microcontroller Atmega324P. Deze is zeer handig om componenten aan te sturen elektronisch wijs. Ze werkt ook met weinig voltage en bevat veel functies zoals timing en seriële verbinding maken. Ook gemakkelijk om input en output aan te sluiten of voor andere dingen aan te sturen.
De stappenmotors 28BYJ-48, 5V~DC motor
Stappenmotors zijn motors die in kleine stapjes draaien. Ik gebruik deze omdat mijn klok die hoge precisie nodig heeft voor een bepaald segment te bekomen zonder dat deze te veel of te weinig draait. De stappenmotor werkt als volgt: De motor bevat vier spoelen die een tandwiel in de motor aanstuurt. We hebben de vier signaal draden en elk draadje laat een spoel aantrekken en dus per spoel zal het tandwiel naar die spoel draaien. Aan dat tandwiel zit de motor-as die dus beweegt. Deze wordt aan de driver aangesloten met vijf draden. Één voor spanning en de rest zijn signaal draden voor de spoelen aan te sturen.
De stappenmotor drivers ULN2003A
De stappenmotor drivers zijn gemakkelijk te gebruiken en hebben leds als indicatie welke spoel aangestuurd wordt. Het bestaat uit een driver ULN2003A, vier weerstanden, vier ledjes en één condensator (voor te ontstoren). De ULN2003A heeft meer
ingangen maar het is voor één specifieke stappenmotor. Ik gebruik
het omdat het onmiddellijk de stappenmotors aanstuurt zonder problemen. Het is overzichtelijker en het bespaart wat tijd.
De 3D Lichamen
Het zijn allemaal losse stukken die in elkaar gezet moeten worden om zo een werkend segment te bekomen. Omdat elke printer verschillend is pas ik de stukken aan. Ik heb gekozen voor 3D lichamen omdat ze grote precisie hebben in vorm van kleine details zoals de formaten van de geraamten. Je kan ze ook perfect maken voor bepaalde componenten. De 3D lichamen maak ik op 3D Builder. Ze zijn makkelijk aan te passen eenmaal je ze hebt gemaakt. En het is ook veel goedkoper om ze zelf te printen dan ze te laten maken door een firma.
Kogellagers 625ZZ
Ik gebruik kogellagers voor mijn motors glad te laten ronddraaien zodat ik vlotte bewegingen kan maken zonder te haperen. Het principe is dat de kogellagers een buiten- en binnencirkel hebben. De buitencirkel hangt vast aan een object terwijl de binnenste cirkel nog vrij kan bewegenn. De
kogellagers die ik gebruik zijn 16mm groot en de binnencirkel is 4mm groot.
Drukknoppen
De drukknoppen die ik gebruik, zijn normale drukknoppen omdat deze het gemakkelijkste zijn om te gebruiken. Deze drie worden voorzien met elk zes weerstanden. De drukknoppen sluit ik aan mijn MCU. Ik heb gekozen voor drukknoppen want ze dienen maar voor een functie uit te voeren en geen vast signaal aan te houden (schakelaar blijvend hoog/laag).
Split-flap Klok GIP 6 ICT
MAX3232
Ik gebruik de MAX3232 voor de seriële communicatie tussen mijn PC en mijn
microcontroller. Het is een component die met asynchroon seriële communicatie kan communiceren met een apparaat. Dit is voor mijn klok aan te sturen met mijn C# applicatie.
Deze heeft vier pinnen. Een Vcc, een Ground, een TX en een RX. De Vcc en Ground sluit ik aan mijn Vcc en Ground van mijn MCU. De TX en de RX sluit ik aan de RX en TX van mijn MCU. De MAX3232 heeft een ingebouwde seriële female-connector waarop men een seriële male-connector kan op aansluiten via USB en zo naar de PC.
RTC PCF8563
De RTC of Real Time Clock is een component die de tijd bijhoudt, en een alarm kan instellen om een bepaalde tijdseenheid (uur, minuut,…). De RTC kan de tijd zelf blijven onthouden ook al krijgt hij geen stroom meer. Hij kan het blijven onthouden omdat je er een batterij aan hangt. Deze component heb ik besloten te gebruiken omdat mijn microcontroller dan niet heel de tijd moet opereren voor de tijd te timen. Ook zal de RTC hogere precisie hebben omdat alles op voorhand is ingesteld en waarvan het kristal grotere frequentie heeft dan het kristal aan mijn MCU.
Buzzer
Een buzzer is een component die op een bepaalde spanning een pieptoon kan veroorzaken.
De buzzer die ik gebruik heeft geen specifieke naam, het is een willekeurige buzzer. Ik heb wel metingen gedaan en de buzzer neem 27mA bij 5V en maakt al hoorbaar geluid bij 3V. Ik gebruik de buzzer als alarm voor de wekker van de klok.
Kristal
Er is ook nog een kristal aangesloten aan de MCU. Deze genereert een constante/bepaalde frequentie waarop mijn MCU kan werken. Zodanig dat ik geen verschillende
frequenties/snelheden heb waar mijn MCU op kan werken.
Condensatoren
Condensatoren zijn componenten die gebruikt worden voor storingen weg te werken. Ik plaats mijn condensatoren tussen de Vcc en ground van mijn stappenmotordrivers en ook tussen mijn kristal omdat deze een frequentie genereert die totaal niet gestoord mag worden.
Weerstanden
Weerstanden gebruik zodanig dat mijn componenten beschermt zijn en zodat er niets wordt kortgesloten.
Split-flap Klok GIP 6 ICT
5. Software
De volgende programma’s heb ik gebruikt voor mijn GIP
Atmel Studio
Ik gebruik Atmel studio om mijn microcontroller te programmeren in C-taal. Het is zeer handig om met microcontroller te programmeren want u kan uw timing (wat zeer belangrijk is in uw klok) precies instellen hoe jij het wilt. Ook is het handig voor componenten aan te sturen omdat U beschikt over verschillende poorten van uw microcontroller. Daarbij is het nog een extra voordeel vooral als je met seriële verbinding gaat werken dat u ook het best met C programmeert omdat het in de C-gebaseerde groep zit..
HTerm
HTerm is de software die ik gebruik voor de verbinding tussen mijn Microcontroller en PC serieel te gaan realiseren. U kan er ook zien wat er wordt gestuurd naar de PC en wat er verzonden wordt naar uw microcontroller
3D Builder
3D builder is een standaard programma van Microsoft dat ik gebruik voor de lichamen van mijn Split flap displays te gaan ontwerpen. Ook gebruik ik het als ik een probleem heb in mijn lichamen dat ik dat makkelijk kan aanpassen met het programma. Ik heb geen specifieke reden waarom ik dit programma gebruik en geen ander.
Visualstudio
Visualstudio gebruik ik voor mijn form aan te maken voor mijn klok in te stellen. We gebruiken Windows Forms met de programmeertaal C#. U kan ook meerdere talen
gebruiken in Visual studio en ook C# zonder windows forms te gebruiken. Visualstudio is ook zeer handig omdat u uw programma ook nog eens kan debuggen/testen. Hij zal ook zeggen wanneer u iets fout of onlogisch hebt gecodeerd.
EasyEDA
Ik gebruik easyEDA voor mijn schema’s te tekenen en ook voor de definitieve print te ontwerpen. Het programma heeft alle componenten die u nodig heeft. U kan de
componenten verbinden met elkaar d.m.v. lijnen en u kan de lijnen aanpassen zodanig dat u een overzichtelijk schema hebt.
Split-flap Klok GIP 6 ICT
6. Voorontwerp
Mijn deelproject zijn:
Eén split-flap display aansturen met de microcontroller.
De doelstelling is dat de splitflap klok al één segment kan laten werken en wanneer een bepaalde tijd verstreken is deze zal draaien tot de volgende nummers. De opstelling is als volgt: Een stappenmotor driver ULN2003 aangesloten aan de microcontroller aan de vcc, ground en vier uitgangspoorten van de MC. De stappenmotor is ook verbonden met de stappenmotor driver. Deze wordt aangestuurd achter een bepaalde tijd en laat de motor één keer draaien voor het volgende nummer te bereiken. (zie ook broncode voor de werking).
Twee splitflap displays aansturen met de microcontroller.
Het doel is hetzelfde als het vorige project maar dan met twee segmenten en die twee segmenten moeten dus met elkaar kunnen werken. D.w.z. dat als er een tijd gepasseerd is en het eerste segment heeft een minuut gepasseerd dat deze weer 0 is en dat het 2de segment een
waarde veranderd.
Ook de opstelling is hetzelfde, alleen gebruik je andere poorten van uw MCU om de
stappenmotordriver aan te sturen.
Split-flap Klok GIP 6 ICT
Eén split-flap display aansturen via PC. (HTERM)
Het doel is om een splitflap display te laten werken door een waarde serieel te gaan versturen en dit heb ik gedaan met het programma HTERM.
Dit heb ik gedaan met een MAX3232. Deze sluit ik aan mijn MCU en aan mijn pc. De PC via een USB en de MCU via 4 pinnen de Vcc, TX,RX en Ground.
U kan waarden sturen naar uw MCU via uw pc of omgekeerd en die worden in deeltjes verzonden met een start/stopbit(s) en ook met een bepaalde snelheid. Hierboven ziet u de initialisatie van welke instellingen ik gebruik voor deze aan te sturen.
Split-flap Klok GIP 6 ICT
Alarm
Voor het alarm heb ik een blokschema gemaakt. Vanaf dat de RTC aangeeft dat het alarm afgaat dan gaat deze een variabele (alarm) 1 geven zodanig dat hij naar deze lus kan gaan.
Direct in de lus zet ik het alarm af zodanig dat het geen 2 keer afgaat (of 2 keer moet drukken). Wanneer hij in deze lus zit legt hij de PWM aan (voor het volume) En springt hij in een lus die controleert als de drukknop wordt ingedrukt. Als deze nog niet wordt ingedrukt dan zal de buzzer geluid maken. Wanneer dit wel gebeurt zal de buzzer afgelegd worden.
Split-flap Klok GIP 6 ICT
Volume Alarm
Voor het volume van het alarm te regelen dacht ik eerst van een digitale potentiometer te gebruiken maar uiteraard bestaat er een functie op de MCU die mij daar bij helpt. PWM (Pulse Width Modulation) kan een stabiel signaal logisch 0 maken voor een korte tijd met een reeks pulsen. U kan instellen hoelang de pulsen logisch 0 zijn in 1 periode. Kort is het een tool die uw gemiddelde spanning op een pin kan aanpassen.
Hier in bijlage de initialisatie van de PWM in mijn programma.
Serieel instellen GUI
Split-flap Klok GIP 6 ICT
Het serieel versturen doe ik via karakters te verzenden en deze dan te ontvangen op mijn MCU omdat ik geen woorden kan doorgeven, (MCU kijkt naar laatst verzonden karakter in een woord) gebruik ik aparte karakters. Ik gebruik ook PWM en sluit deze aan mijn buzzer om het volume te regelen. PWM is een techniek die gebruikt wordt om de aangesloten spanning te veranderen via pulsen deze naar beneden te halen zodanig dat de gemiddelde spanning kleiner is.
7. Ontwerp hardware
Split-flap Klok GIP 6 ICT
7.1 Schema
7.2 Bespreking schema
De MCU krijgt spanning van de voeding → meerdere componenten onder spanning.
Programma is klaar → PC (USB) wordt verbonden met ISP connector op MCU → MCU wordt gereset → MCU wordt geprogrammeerd .
De RTC telt de tijd tot wanneer bijvoorbeeld een minuut gepasseerd is → de RTC geeft de MCU een ingangssignaal → de MCU gaat de stappenmotordriver aansturen → de
stappenmotor zal draaien.
De RTC geeft een signaal aan de MCU (alarm) → MCU stuurt buzzer aan → er is geluid.
7.3 Print
Split-flap Klok GIP 6 ICT
8. Gewenste functies “applicaties” (doelstelling) De naam zegt het zelf, een klok.
Het is niet zomaar een klok het is een klok met speciale segmenten die je kan aansturen met 2 drukknoppen. U zal uiteraard ook de waarde kunnen instellen op de PC via een C# applicatie die de waarde van de klok per segment zal veranderen
8.1. Ook een alarm op de klok die werkt via een zoomer.
Split-flap Klok GIP 6 ICT
9. Kostprijsberekening
Ik heb geluk gehad dat ik veel dingen niet zelf moest betalen bv: Filament voor de 3D printer of andere componenten waar mijn GIP-mentor voor zorgde. Voor de kogellagers was het ongeveer €6, de stappenmotors en de stappenmotor drivers was het €12, het 3D printen kon ik nu nog gratis doen maar het filament dat is verbruikt zou wel €50 gekost hebben. De MAX3232 met USB kostte ruw €15.
De buzzer, drukknoppen, condensatoren en het kristal had ik al maar als u ze toch wilt kopen kost het ongeveer €3. RTC heeft mijn GIP-mentor voor mij besteld, het kostte €3.5. De programma’s die ik gebruik kan ik gratis gebruiken dus dan heb ik daar ook geen kosten aan.
- 3D filament €51.00
- MAX3232 met USB €14.75 - Stappenmotors/drivers €12.35 - Kogellagers 625ZZ €6.80
- Buzzer €0.50
- RTC PCF8563 €3.51
- Print €20.00
- Kristal €0.25
- Condensatoren €0.60
- Drukknoppen €1.25
- Weerstanden €1.60
- Applicaties gratis
Omdat heel mijn GIP vooral bestaat uit 3D geprinte lichamen is de prijs voor het 3D filament zeer hoog. De MAX3232 is ook duurder dan de andere omdat het een ingebouwde poort bevat en dus al zonder USB €13 is. De stappenmotors en drivers kosten bijna €13 omdat het van elk 4 stuks zijn. De kogellagers zijn ook duur want dat is omdat ik er per segment 2 gebruik dus dat komt op een totaal van 8 kogellagers. Hierbij is dus het totaal met van alle componenten €112.61.
Split-flap Klok GIP 6 ICT
10. Besluit
Het is niet makkelijk en ik raad het ook niet aan voor de mensen die een gelijkaardig project willen realiseren dat deze mensen op zijn minst zelf een 3D printer hebben. Ik heb het geluk gehad dat ik op school gebruik kon maken zonder dat veel andere mensen deze gebruikten.
Split-flap Klok GIP 6 ICT
11. Bronnen
Datasheet stappenmotor:
https://components101.com/sites/default/files/component_datasheet/28byj48-step-motor- datasheet.pdf
Datasheet Microcontroller :
https://www.farnell.com/datasheets/2048483.pdf Datasheet ULN2003A / Stappenmotordriver:
https://www.st.com/resource/en/datasheet/uln2001.pdf Datasheet RTC PCF8563:
https://www.nxp.com/docs/en/data-sheet/PCF8563.pdf MAX3232
https://www.ti.com/lit/ds/symlink/max3232.pdf?ts=1645187014667&ref_url=https%253A%252F%2 52Fwww.google.com%252F
Split-flap Klok GIP 6 ICT
12. Bijlagen
In bijlage bestanden die ik heb gebruikt voor het project te realiseren.
Split-flap_display.zip PWM.zip split-flap 2 segmenten z exacte timing.zip
SPRINTF_SSCANF_EDU_VERSIE2.zip RTC-GIP.zip GIP_GUI.zip