Arduino klok, gemaakt met flipperkasttellers.
23 berichten
• Pagina 1 van 3 • 1, 2, 3
Arduino klok, gemaakt met flipperkasttellers.
Het is al een lange tijd geleden dat ik iets met Arduino gedaan heb, maar gelukkig heeft mijn vriendin een klein projekt kunnen verzinnen waar ik met veel plezier mee bezig ben geweest.
Omdat wij van flipperen houden en weleens naar een flipperavond gaan, is het een klok geworden. Deze klok geeft de tijd weer dmv pinball reels van Williams, ook wel telwielen genoemd.
om bij spanningsuitval de tijd niet te hoeven instellen heb ik er een realtimeklokje (rtc) aangeknoopt.
Uiterlijk wilde ik het een steampunkachtige look geven, de koperen bel ontbreekt nog. Het volgende project is wederom een klok met telwielen, maar ook met 3-tonige chimes uit een Bally.
Deze zal dan ieder heel uur de tijd ten gehore brengen, maar ook ieder half uur een geluid geven, dit is natuurlijk wel uit te schakelen want de klok is sowieso vrij gehorig .
https://www.youtube.com/watch?v=JK153ASkqpE
Omdat wij van flipperen houden en weleens naar een flipperavond gaan, is het een klok geworden. Deze klok geeft de tijd weer dmv pinball reels van Williams, ook wel telwielen genoemd.
om bij spanningsuitval de tijd niet te hoeven instellen heb ik er een realtimeklokje (rtc) aangeknoopt.
Uiterlijk wilde ik het een steampunkachtige look geven, de koperen bel ontbreekt nog. Het volgende project is wederom een klok met telwielen, maar ook met 3-tonige chimes uit een Bally.
Deze zal dan ieder heel uur de tijd ten gehore brengen, maar ook ieder half uur een geluid geven, dit is natuurlijk wel uit te schakelen want de klok is sowieso vrij gehorig .
https://www.youtube.com/watch?v=JK153ASkqpE
Advertisement
Re: Arduino klok, gemaakt met flipperkasttellers.
mooi ding man,
zijn die spoelen wel DC?
persoonlijk zou ik de arduino en de RTC door laten lopen dus om de schakelaar om.
als je dan smorgens de schakelaar aan zet dan springen de cijfers gelijk naar de goede positie zonder eerst te resetten.
(of hem zelf snachts automatisch even te laten stoppen met lopen en smorgens vanzelf lampje aan en hup gaat de tijd.
hoeveel milliseconden heb je een spoel aan?
maak eens een schema in fritzing of zo, en stuur het op naar bijv elektor (harry baggen)
zijn die spoelen wel DC?
persoonlijk zou ik de arduino en de RTC door laten lopen dus om de schakelaar om.
als je dan smorgens de schakelaar aan zet dan springen de cijfers gelijk naar de goede positie zonder eerst te resetten.
(of hem zelf snachts automatisch even te laten stoppen met lopen en smorgens vanzelf lampje aan en hup gaat de tijd.
hoeveel milliseconden heb je een spoel aan?
maak eens een schema in fritzing of zo, en stuur het op naar bijv elektor (harry baggen)
paul deelen
shooter@home.nl
shooter@home.nl
Re: Arduino klok, gemaakt met flipperkasttellers.
Hallo Paul,
Dankjewel.
De spoelen zijn idd. DC en worden 145 ms bekrachtigd.
Dat resetten is een klein beetje gemakzucht van mij.
Die routine gebruik ik ook wanneer het 24.00hr wordt, immers moet dat 0.00hr zijn omdat tevens een nieuwe dag begint. Ik heb er ook nog aan zitten denken om een dcf77' Klok te gebruiken, maar nu zit er een rtc ds3107 in die erg goedkoop is en betrouwbaar.
Misschien gaat het me lukken.om het schema in Fritzing te maken. Het driverbordje heb ik met kicad gemaakt.
Dankjewel.
De spoelen zijn idd. DC en worden 145 ms bekrachtigd.
Dat resetten is een klein beetje gemakzucht van mij.
Die routine gebruik ik ook wanneer het 24.00hr wordt, immers moet dat 0.00hr zijn omdat tevens een nieuwe dag begint. Ik heb er ook nog aan zitten denken om een dcf77' Klok te gebruiken, maar nu zit er een rtc ds3107 in die erg goedkoop is en betrouwbaar.
Misschien gaat het me lukken.om het schema in Fritzing te maken. Het driverbordje heb ik met kicad gemaakt.
Re: Arduino klok, gemaakt met flipperkasttellers.
Hallo Paul,
Ik heb geprobeerd het in geheel in Fritzing te plaatsen het breadboard lukt wel, maar het schema is een gigantische puinhoop.
Misschien dat ik nog wat moet spelen met Fritzing.
Ik heb geprobeerd het in geheel in Fritzing te plaatsen het breadboard lukt wel, maar het schema is een gigantische puinhoop.
Misschien dat ik nog wat moet spelen met Fritzing.
Re: Arduino klok, gemaakt met flipperkasttellers.
het tekenen moet je behoorlijk goed voorbereiden, en net als in het echt is plaatsing een taak. in alle 3 de systemen, eerst de componenten plaatsen en dan maakt het niet uit hoe je de verbindingen maakt.
het is ook maar een hulpmiddel om scholieren een beetje te laten documenteren.
het is ook maar een hulpmiddel om scholieren een beetje te laten documenteren.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Arduino klok, gemaakt met flipperkasttellers.
Erg mooi gemakt zo'n klokje
Zijn die telwielen nog zo gemakkelijk te verkrijgen?
Zijn die telwielen nog zo gemakkelijk te verkrijgen?
Met vriendelijke groet Arjan
Re: Arduino klok, gemaakt met flipperkasttellers.
Jazeker, bij http://www.flipperwinkel.nl zou het wel eens kunnen en anders op ebay.
Re: Arduino klok, gemaakt met flipperkasttellers.
Filmpje van de klok die de tijd ten gehore brengt.
Het grappige is dat er ook een volumeknop op zit waarmee je het geluid harder of zachter kunt zetten.
Ik stel hiemee niets meer in dan het delay waarmee de solenoid bekrachtigd wordt, zie sketch.
https://www.youtube.com/watch?v=vEyurfKl-jc
Ik stuitte in oktober tegen een probleem aan, de zomer/wintertijd, deze moet ik nu nog steeds invoegen,
helaas zit dit niet in de RTC (DS3231) ingebakken.
Wat ik wil is de tijd, maand en dag uitlezen en hiermee in maart de tijd een uur ophogen en in oktober weer goed zetten.
Dit wordt gedaan met Het Nakamoto algoritme wat ik via Google vond.
Ik zal de sketch moeten herschrijven en dit toevoegen, want het is behoorlijk rechtoe rechtaan geprogrammeerd zoals je hieronder kunt zien.
Programmeren is nog steeds niet mijn sterkste punt, misschien iemand een suggestie?
Het grappige is dat er ook een volumeknop op zit waarmee je het geluid harder of zachter kunt zetten.
Ik stel hiemee niets meer in dan het delay waarmee de solenoid bekrachtigd wordt, zie sketch.
https://www.youtube.com/watch?v=vEyurfKl-jc
Ik stuitte in oktober tegen een probleem aan, de zomer/wintertijd, deze moet ik nu nog steeds invoegen,
helaas zit dit niet in de RTC (DS3231) ingebakken.
Wat ik wil is de tijd, maand en dag uitlezen en hiermee in maart de tijd een uur ophogen en in oktober weer goed zetten.
Dit wordt gedaan met Het Nakamoto algoritme wat ik via Google vond.
Ik zal de sketch moeten herschrijven en dit toevoegen, want het is behoorlijk rechtoe rechtaan geprogrammeerd zoals je hieronder kunt zien.
Programmeren is nog steeds niet mijn sterkste punt, misschien iemand een suggestie?
- Code: Alles selecteren
//*************************************** klok **************************************
//** **
//** Gemaakt door Evert Kaatman voor Flipperwinkel.nl **
//** **
//***********************************************************************************
#include <DS3231.h>
// Init the DS3231 using the hardware interface
DS3231 rtc(SDA, SCL);
// Init a Time-data structure
Time t;
int volume = 0;
int slagw = 0;
int i = 0;
int j = 0;
int uur1 = 0;
int uur2 = 0;
int min1 = 0;
int min2 = 0;
int duur1 = 0;
int duur2 = 0;
int dmin1 = 0;
int dmin2 = 0;
String u1 = "";
String u2 = "";
String m1 = "";
String m2 = "";
String tijd = "";
void Vol() {
volume = int(analogRead(0) / 32 + 10);
if (volume < 12) {
volume = 0;
}
}
//Chimes
void DingDong() {
for (int i = 1; i < 4; i++) {
Vol();
if ( volume < 2 ) {
break;
}
digitalWrite (3, HIGH);
delay (volume);
digitalWrite (3, LOW);
delay (145 + (112 - volume));
digitalWrite (4, HIGH);
delay (volume );
digitalWrite (4, LOW);
delay (145 + (112 - volume));
digitalWrite (13, HIGH);
delay (volume );
digitalWrite (13, LOW);
delay (145 + (112 - volume ));
delay(1000);
}
}
//Tellers op "0" zetten
void NullPos() {
for (int i = 5; i < 9; i++) {
while (digitalRead(i + 4) == HIGH) {
digitalWrite (i, HIGH);
delay (175);
digitalWrite (i, LOW);
delay (175);
}
}
for (int i = 1; i < 13; i++) {
Vol();
digitalWrite (4, HIGH);
delay (volume);
digitalWrite (4, LOW);
delay (1000);
}
}
// *********************************************** tijd uitlezen ***********************************************
void readTime() {
tijd = rtc.getTimeStr();
u1 = tijd.substring(0, 1);
u2 = tijd.substring(1, 2);
m1 = tijd.substring(3, 4);
m2 = tijd.substring(4, 5);
uur1 = u1.toInt();
uur2 = u2.toInt();
min1 = m1.toInt();
min2 = m2.toInt();
}
// *********************************************** tijd zetten ***********************************************
void tijdZetten () {
for (int i = 0; i < min2; i++) {
digitalWrite (5, HIGH);
delay (175);
digitalWrite (5, LOW);
delay (175);
}
for (int i = 0; i < min1; i++) {
digitalWrite (6, HIGH);
delay (175);
digitalWrite (6, LOW);
delay (175);
}
for (int i = 0; i < uur2; i++) {
digitalWrite (7, HIGH);
delay (175);
digitalWrite (7, LOW);
delay (175);
}
for (int i = 0; i < uur1; i++) {
digitalWrite (8, HIGH);
delay (175);
digitalWrite (8, LOW);
delay (175);
}
}
// ****************************************************************************************************************************************
void setup() {
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(13, OUTPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
rtc.begin();
//tijd instellen
//rtc.setDOW(THURSDAY);
//rtc.setDate(1,14, 2017);
//rtc.setTime(16, 56, 0);
NullPos();
readTime();
DingDong();
tijdZetten();
//delay (2000);
duur1 = uur1;
duur2 = uur2;
dmin1 = min1;
dmin2 = min2;
}
void loop() {
readTime();
// ************************************** eenheden minuten **************************************
if (dmin2 != min2) {
digitalWrite (5, HIGH);
delay (175);
digitalWrite (5, LOW);
delay (175);
dmin2++;
if (dmin2 == 10) {
dmin2 = min2;
}
}
// **************************************** tientallen minuten ************************************
if (dmin1 != min1) {
digitalWrite (6, HIGH);
delay (175);
digitalWrite (6, LOW);
delay (175);
if (dmin1 >= 5) {
for (int i = 6; i < 10; i++) {
digitalWrite (6, HIGH);
delay (175);
digitalWrite (6, LOW);
delay (175);
}
}
dmin1++;
}
dmin1 = min1;
// ************************************** eenheden uren *********************************************
if (duur2 != uur2) {
digitalWrite (7, HIGH);
delay (175);
digitalWrite (7, LOW);
delay (175);
duur2++;
// **************** slagwerk ********************
slagw = int (uur1 * 10 + uur2 + 1);
if (slagw > 24) {
goto null ;
}
if (slagw > 12) {
slagw = slagw - 12;
}
Vol();
digitalWrite (3, HIGH);
delay (volume );
digitalWrite (3, LOW);
delay (400);
digitalWrite (4, HIGH);
delay (volume );
digitalWrite (4, LOW);
delay (400);
digitalWrite (13, HIGH);
delay (volume );
digitalWrite (13, LOW);
delay (3400);
for (int i = 1; i < slagw; i++) {
Vol();
digitalWrite (4, HIGH);
delay (volume );
digitalWrite (4, LOW);
delay (1000);
}
if (duur2 = 10) {
duur2 = uur2;
}
}
// *************************************** tientallen uren *******************************************
if (duur1 != uur1) {
digitalWrite (8, HIGH);
delay (175);
digitalWrite (8, LOW);
delay (175);
duur1++;
null:
if (duur1 >= 3) {
NullPos();
duur1 = uur1;
}
}
}
Re: Arduino klok, gemaakt met flipperkasttellers.
de eerste hit die ik tegenkwam.
https://arduinodiy.wordpress.com/2015/10/13/the-arduino-and-daylight-saving-time/
dat moet je dus in je uren teller bijhouden, en dus soms 2 keer pulsen of juist een keer overslaan.
Je hebt alles met delay geschreven en dat gaat hier prima, maar in andere situaties zal dat gaan opbreken.
verder zet die 175 in een variabele dan hoef je het maar op 1 plaats aan te passen, en gebruik voor het afvallen een langere tijd, bijv 350. dan weet je zeker dat de veer zijn werk gedaan heeft.
https://arduinodiy.wordpress.com/2015/10/13/the-arduino-and-daylight-saving-time/
dat moet je dus in je uren teller bijhouden, en dus soms 2 keer pulsen of juist een keer overslaan.
Je hebt alles met delay geschreven en dat gaat hier prima, maar in andere situaties zal dat gaan opbreken.
verder zet die 175 in een variabele dan hoef je het maar op 1 plaats aan te passen, en gebruik voor het afvallen een langere tijd, bijv 350. dan weet je zeker dat de veer zijn werk gedaan heeft.
paul deelen
shooter@home.nl
shooter@home.nl
23 berichten
• Pagina 1 van 3 • 1, 2, 3
Terug naar Afgeronde projecten
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 12 gasten