Vraag beginner photobooth

Hallo,

Ik zou me eerst eens voorstellen, ben Jeffrey 31jaar oud service technische van beroep. Volgend jaar ga ik trouwen met me vriendin. Nu heb ik als hobby fotografie, en op feestjes ben ik meestal de gene die foto's maakt. Nu heb ik daar tijdens het feest in de avond natuurlijk geen zin in (overdag huur ik een fotograaf in), en ben aan het zoeken geslagen naar een leuke oplossing. Nu kwam ik diverse photo booth tegen die met een arduino werken. Zoals : deze bv Mij gaat het eerst om of ik de hardware werkend krijg en daarna zie ik wel veder hoe ik dit ga inbouwen. En ik snap dat ik de lat hoog leg voor mezelf, maar dat maakt het juist leuk.

Ik heb een idee hoe ik het wil laten werken (hoop dat het duidelijk is) : De Arduino zelf hoeft niks met de foto's te doen, die worden gewoon opgeslagen in de sd kaart van de fotocamera en getoond op een scherm via de camera. De Arduino software geeft geen foutmeldingen op de onderstaande code.

3 schakelaars waarmee ik het aantal foto's bepaal. schakelaar 1 = 1 foto schakelaar 2 = 2 foto's schakelaar 3 = 3 foto's

Hierna een startknop die je moet indrukken om de foto's te gaan maken. (Als die niet ingedrukt wordt moet er niks gebeuren.) Hierna begint een display af te tellen. foto - foto op scherm getoond via een hdmi kabel van de camera naar een scherm. Eind terug naar begin loop

Nu ben ik aan het proberen de code te programmeren. Alleen ik weet niet of het volgende mogelijk is. Een Else if met daarin nog een if proces voor de startknop.

void loop() {
  //Begin led ready aan
  if (digitalRead(Inpin)==HIGH){   // schakelaar 1
//display's aan sturen met aantal te maken foto's
         if (digitalRead(Button)==HIGH){           //Start Knop
//foto proces
//return to begin of loop
  }
}

else if (digitalRead(Button1)==HIGH){  // Schakelaar 3

//display's aan sturen met aantal te maken foto's
  if (digitalRead(Button)==HIGH){     //startknop
     //foto proces
     // return to begin off loop
  }
  } 

else if (digitalRead(Button2)==HIGH){  //Schakelaar 3 

//display's aan sturen met aantal te maken foto's
  if (digitalRead(Button)==HIGH){    //startknop
     //foto proces
     // return to begin off loop
  }
  }  
}

Een code voor een 7 segment display die aftelt heb ik ook al gevonden. Er stond ook nog een andere, maar ik begrijp deze en dat vindt ik belangrijker dan een korte nette code.

void setup() {            
  pinMode(2, OUTPUT);  
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  digitalWrite(9, 0);  // start with the "dot" off
}

void loop()'{
  // write '9'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '8'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '7'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 0);
 delay(1000);
 // write '6'
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '5'
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '4'
 digitalWrite(2, 0);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(1000);
 // write '3'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(1000);
 // write '2'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 0);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(1000);
 // write '1'
 digitalWrite(2, 0);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 0);
 delay(1000);
 // write '0'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
delay(1000);
}

De camera laat ik via een optocoupler of een relais schakelen. Ik heb nog niet alle hardware om te gaan testen.

De Drukknop moet worden genegerd als het programma loopt(foto's maakt). Uit deze tutorial heb ik de werking van de drukknop gehaald. Maar ik heb de buttonstate weg gelaten, zodat de drukknop geen geheugen heeft. Heb ik dit goed gedaan?

Ik hoop dat iemand een antwoord heeft voor me of ik op de juiste weg ben of dat ik helemaal verkeerd aan het denken ben. Of eventueel andere tips wat ik beter zou kunnen doen.

Voor de knop zou ik de interne pull up gebruiken ipv de externe pull down weerstand. Scheelt weer een component. Maar dan sluit je de knop tussen GND en een input aan en is de knop HIGH in rust en uist LOW wanneer ingedrukt.

Verder zal de code voor het 7-segment wel werken maar bedenk dat deze blocking is. Dat wil zeggen, je kan niets anders doen tijden het aftellen. Als je niets anders wilt doen is dat niet erg maar als je denkt, het zou ook nog leuk zijn als er wat lichtjes op mijn photobooth knipperen gaat je dat niet meer lukken. Of, als je wilt dat mensen het aftellen kunnen annuleren gaat je dat nu ook niet meer lukken.

Verder zou ik het uitlezen van het aantal foto's en het werkelijk afdrukken omdraaien. Bedoel, de code binnen dat het moet afdrukken zal steeds bijna hetzelfde zijn. Zonde om steeds te moeten schrijven ;)

Verder is het verstandig namen aan pinnen te geven.

pinMode(2, OUTPUT); 
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);

Zal het gewoon doen maar je hebt het commentaar wel echt nodig om te weten wat je er mee wilt. Kies dus duidelijke namen. Button Button1 en input vallen daar niet onder ;) PhotoButton, Amount1Switch, Amount2Switch enz zou ik duidelijker vinden.

En druk voor de grap eens op ctrl+t in de Arduino IDE. Je maakt het jezelf een stuk makkelijker als je netjes in springt en terug springt en de haakjes laat uitlijnen. Door ze zo random ingesprongen neer te zetten is het vergeten van een haakje (of het teveel plaatsen van een haakje) wel erg makkelijk.

Het aantal foto's zo instellen is prima mogelijk. Maar bedenk wel dat in dit geval als je schakelaar voor 1 foto aan zet de andere genegeerd worden enz. Je zou ook een 3 standen schakelaar kunnen gebruiken zoals deze. Hiermee heb je drie standen, contact A aan, niets aan, contact B aan. Deze zou je mooi kunnen gebruiken als aantal. Zo is er geen mogelijkheid dat een schakelaar niets betekend en is het eenduidiger.

Een andere mooie optie zou zijn dat je een tweede drukknop maakt waarmee je het aantal foto's kunt instellen tussen 1 en zoveel je max wilt. Iedere keer dat je er op drukt hoog je het aantal dan op en kan je bijvoorbeeld op het 7-segment laten zien. En ben je bijvoorbeeld bij 9 foto's en je drukt weer ga je terug naar 1.

Met andere woorden, je bent redelijk op de goede weg maar je moet vooral netter gaan werken om het duidelijk te houden voor jezelf. Ook moet je voor jezelf duidelijk maken of dit alles is wat je wilt doen omdat bijvoorbeeld de delay() je later gegarandeerd in de weg zit als je besluit meer te willen. Ook is het belangrijk dat je al uit zoekt hoe je jouw camera extern kunt triggeren.

Ow, en nog klein dingetje over het aftellen. Ik neem aan dat je de foto wilt nemen op 0, niet op -1. Dus na 0 moet je niet nog een seconde wachten ;)

Hoi Septillion,

ten eerste bedankt voor je uitgebreide antwoord.

septillion:
Voor de knop zou ik de interne pull up gebruiken ipv de externe pull down weerstand. Scheelt weer een component. Maar dan sluit je de knop tussen GND en een input aan en is de knop HIGH in rust en uist LOW wanneer ingedrukt.

Dankje, ga ik even uitzoeken hoe ik de interne pull up moet gebruiken.

septillion:
Verder zal de code voor het 7-segment wel werken maar bedenk dat deze blocking is. Dat wil zeggen, je kan niets anders doen tijden het aftellen. Als je niets anders wilt doen is dat niet erg maar als je denkt, het zou ook nog leuk zijn als er wat lichtjes op mijn photobooth knipperen gaat je dat niet meer lukken. Of, als je wilt dat mensen het aftellen kunnen annuleren gaat je dat nu ook niet meer lukken.

Van mij hoeft er in eerste instantie geen andere lichtjes te knipperen. Ik heb ook wel korte code’s gevonden voor het aftellen. Alleen ik begrijp (nog) niet hoe die werken, en dat vind ik wel belangrijk ipv knippen en plakken.

septillion:
Verder zou ik het uitlezen van het aantal foto’s en het werkelijk afdrukken omdraaien. Bedoel, de code binnen dat het moet afdrukken zal steeds bijna hetzelfde zijn. Zonde om steeds te moeten schrijven :wink:

De bedoeling is een 2de 7 segment display die aangeeft hoeveel foto’s nog te gaan.
Dus bij 3 foto’s geeft die eerst 3 aan, foto, dan 2, foto, 1, foto, 0

septillion:
Verder is het verstandig namen aan pinnen te geven.

pinMode(2, OUTPUT); 

pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);



Zal het gewoon doen maar je hebt het commentaar wel echt nodig om te weten wat je er mee wilt. Kies dus duidelijke namen. Button Button1 en input vallen daar niet onder ;) PhotoButton, Amount1Switch, Amount2Switch enz zou ik duidelijker vinden.

Dat moet ik inderdaad gaan doen.

septillion:
En druk voor de grap eens op ctrl+t in de Arduino IDE. Je maakt het jezelf een stuk makkelijker als je netjes in springt en terug springt en de haakjes laat uitlijnen. Door ze zo random ingesprongen neer te zetten is het vergeten van een haakje (of het teveel plaatsen van een haakje) wel erg makkelijk.

Kijk dit zijn van die trukjes die je moet weten. Ik ga het uittesten.

septillion:
Het aantal foto’s zo instellen is prima mogelijk. Maar bedenk wel dat in dit geval als je schakelaar voor 1 foto aan zet de andere genegeerd worden enz. Je zou ook een 3 standen schakelaar kunnen gebruiken zoals deze. Hiermee heb je drie standen, contact A aan, niets aan, contact B aan. Deze zou je mooi kunnen gebruiken als aantal. Zo is er geen mogelijkheid dat een schakelaar niets betekend en is het eenduidiger.

Een andere mooie optie zou zijn dat je een tweede drukknop maakt waarmee je het aantal foto’s kunt instellen tussen 1 en zoveel je max wilt. Iedere keer dat je er op drukt hoog je het aantal dan op en kan je bijvoorbeeld op het 7-segment laten zien. En ben je bijvoorbeeld bij 9 foto’s en je drukt weer ga je terug naar 1.

Ik wou van te voren wel een aantal foto’s instellen, voor de gebruiker moet het in een korte tijd duidelijk zijn wat die moet doen. Niet iedereen is altijd even handig met computer gestuurde dingen.
Dus dan ga ik maar voor de 3 standen schakelaar, of 2 schakelaars waarvan ik bij 1 de HIGH en LOW van ga gebruiken.

septillion:
Met andere woorden, je bent redelijk op de goede weg maar je moet vooral netter gaan werken om het duidelijk te houden voor jezelf. Ook moet je voor jezelf duidelijk maken of dit alles is wat je wilt doen omdat bijvoorbeeld de delay() je later gegarandeerd in de weg zit als je besluit meer te willen. Ook is het belangrijk dat je al uit zoekt hoe je jouw camera extern kunt triggeren.

Ow, en nog klein dingetje over het aftellen. Ik neem aan dat je de foto wilt nemen op 0, niet op -1. Dus na 0 moet je niet nog een seconde wachten :wink:

Ik ga het eerst proberen met de delay, en anders kan ik altijd nog opnieuw beginnen.
Mijn camera word getriggerd door een maak contact te maken. Aansluiting is 3 polig.
gnd-pool 1 = focus
gnd-pool 2 = trigger
Ik wou de foucs activeren bij het begin van het aftellen, en uit als die bij 1 is.
Bij 0 de foto maken, en dan de delay van 1sec :wink:

jeffrl: Dankje, ga ik even uitzoeken hoe ik de interne pull up moet gebruiken.

pinMode(pinNummer, INPUT_PULLUP);

En dan de knop tussen de Arduino pin en GND :D Google levert je ook veel op, staat er vol mee :)

jeffrl: Van mij hoeft er in eerste instantie geen andere lichtjes te knipperen.

Kijk, en dat is een gevaarlijke, in eerste instantie. Doe je het met delay() gaat het je later ook gewoon niet lukken zonder eigenlijk je hele code weer op te breken. Vandaar, bedenk nu goed of je het wil of niet. Je nu inlezen en dan goed doen is een heel stuk minder werk dan nu eerst zo doen, dan inlezen en je code herschrijven ;)

jeffrl: Ik heb ook wel korte code's gevonden voor het aftellen. Alleen ik begrijp (nog) niet hoe die werken, en dat vind ik wel belangrijk ipv knippen en plakken.

Mee eens dat het begrijpen van de code belangrijker is dan knippen een plakken. Maar het is iets redelijks simpels, misschien is het juist een idee om dat uit te zoeken zodat je meer feeling voor de code krijgt. Lijkt me een niet al te moeilijk begin ;)

jeffrl: De bedoeling is een 2de 7 segment display die aangeeft hoeveel foto's nog te gaan. Dus bij 3 foto's geeft die eerst 3 aan, foto, dan 2, foto, 1, foto, 0

Prima mogelijk. Bedenk wel dat een 7-segment scherm zo gewoon 7 (of 8 als je de punt wilt) per stuk vraagt als je deze direct aan sluit. 2 moet dus nog makkelijk lukken (je hebt 20 (18 als je serial wilt houden, handig voor debuggen) pinnen op een Uno/Nano/Pro Mini) maar heb je niet heel veel meer vrij voor toeters en bellen. Je zou een MAX7219 kunnen gebruiken. Redelijk makkelijke chip maar is toch net weer stapje verder.

Ook moet je wel even kijken wat voor 7-segments je pakt. De kleintjes zijn wel zo vanuit een Arduino aan te sturen (met een weerstand) maar de grote hebben vaak meer stroom/spanning nodig. Wel goed dit vooraf dus uit te zoeken. Oplossing is voor alles wel te maken :)

jeffrl: Kijk dit zijn van die trukjes die je moet weten. Ik ga het uittesten.

En naast dat, gewoon zelf proberen de code netjes te houden. Maakt eht voor jezelf een stuk makkelijker om het overzicht te houden.

jeffrl: Ik wou van te voren wel een aantal foto's instellen, voor de gebruiker moet het in een korte tijd duidelijk zijn wat die moet doen. Niet iedereen is altijd even handig met computer gestuurde dingen.

Dat klopt! Daarom zou ik zeggen, code woord hier is ik ;) Zou de interface lekker beperken tot de grote knop en daarmee klaar. Stel jij vooraf (of tussentijdens) in hoeveel foto's hij neemt en klaar. Willen ze meer kunnen ze net zo makkelijk nog een keer drukken ;)

jeffrl: Dus dan ga ik maar voor de 3 standen schakelaar, of 2 schakelaars waarvan ik bij 1 de HIGH en LOW van ga gebruiken.

Zou ik voor 3 standen schakelaar gaan of een drukknop waarmee je het in stelt. Duidelijkste interface. Beide kan je gewoon vooraf doen. En wat ik zei, zou het voor de mensen niet moeilijker maken dan het is en die knop voor het aantal foto's gewoon binnenin/achterop maken. Voor de mensen is er dan één knop, makkelijker kan het niet :D

jeffrl: Ik ga het eerst proberen met de delay, en anders kan ik altijd nog opnieuw beginnen.

Opnieuw kan altijd maar is vaak zo zonde van de tijd :D

jeffrl: Mijn camera word getriggerd door een maak contact te maken. Aansluiting is 3 polig. gnd-pool 1 = focus gnd-pool 2 = trigger

Zou ik inderdaad voor 2 opto's gaan. De eerste de beste zal goed zijn (PC817, 2N36 etc)

jeffrl: Ik wou de foucs activeren bij het begin van het aftellen, en uit als die bij 1 is.

Zolang je verbonden houdt, blijft hij dan een continue focus doen? Of zoals de meest gebruikelijke is op een camera, focus indrukken is eenmalig focussen en dat vast houden. Belangrijk verschil. Als het het laatste is zou ik het pas doen als hij bij 1 is ofzo. Anders heb je steeds de boel in focus op de afstand van de persoon terwijl de knop ingedrukt werd :p

septillion: pinMode(pinNummer, INPUT_PULLUP);

En dan de knop tussen de Arduino pin en GND :D Google levert je ook veel op, staat er vol mee :) Kijk, en dat is een gevaarlijke, in eerste instantie. Doe je het met delay() gaat het je later ook gewoon niet lukken zonder eigenlijk je hele code weer op te breken. Vandaar, bedenk nu goed of je het wil of niet. Je nu inlezen en dan goed doen is een heel stuk minder werk dan nu eerst zo doen, dan inlezen en je code herschrijven ;) Mee eens dat het begrijpen van de code belangrijker is dan knippen een plakken. Maar het is iets redelijks simpels, misschien is het juist een idee om dat uit te zoeken zodat je meer feeling voor de code krijgt. Lijkt me een niet al te moeilijk begin ;)

De code had ik gevonden nadat ik je had geantwoord en kwam op de zelfde code uit. Dus ik heb goed gezocht :) Voor de countdown van het 7 segment ga ik me verdiepen in zonder delay. Dan kan ik altijd nog kiezen welke ik wil gebruiken.

septillion: Prima mogelijk. Bedenk wel dat een 7-segment scherm zo gewoon 7 (of 8 als je de punt wilt) per stuk vraagt als je deze direct aan sluit. 2 moet dus nog makkelijk lukken (je hebt 20 (18 als je serial wilt houden, handig voor debuggen) pinnen op een Uno/Nano/Pro Mini) maar heb je niet heel veel meer vrij voor toeters en bellen. Je zou een MAX7219 kunnen gebruiken. Redelijk makkelijke chip maar is toch net weer stapje verder.

Ook moet je wel even kijken wat voor 7-segments je pakt. De kleintjes zijn wel zo vanuit een Arduino aan te sturen (met een weerstand) maar de grote hebben vaak meer stroom/spanning nodig. Wel goed dit vooraf dus uit te zoeken. Oplossing is voor alles wel te maken :)

Ik wou al voor de mega2564 gaan ivm het aantal ingangen.

septillion: En naast dat, gewoon zelf proberen de code netjes te houden. Maakt eht voor jezelf een stuk makkelijker om het overzicht te houden. Dat klopt! Daarom zou ik zeggen, code woord hier is ik ;) Zou de interface lekker beperken tot de grote knop en daarmee klaar. Stel jij vooraf (of tussentijdens) in hoeveel foto's hij neemt en klaar. Willen ze meer kunnen ze net zo makkelijk nog een keer drukken ;) Zou ik voor 3 standen schakelaar gaan of een drukknop waarmee je het in stelt. Duidelijkste interface. Beide kan je gewoon vooraf doen. En wat ik zei, zou het voor de mensen niet moeilijker maken dan het is en die knop voor het aantal foto's gewoon binnenin/achterop maken. Voor de mensen is er dan één knop, makkelijker kan het niet :D

De interface voor het aantal foto's wou ik ook inbouwen, dat de mensen maar 1 knop zien die ze kunnen indrukken.

septillion: Opnieuw kan altijd maar is vaak zo zonde van de tijd :D

Zonde van de tijd en leerzaam :) Dingen opnieuw moeten doen voor me hobby vind ik niet zo erg.

septillion: Zou ik inderdaad voor 2 opto's gaan. De eerste de beste zal goed zijn (PC817, 2N36 etc) Zolang je verbonden houdt, blijft hij dan een continue focus doen? Of zoals de meest gebruikelijke is op een camera, focus indrukken is eenmalig focussen en dat vast houden. Belangrijk verschil. Als het het laatste is zou ik het pas doen als hij bij 1 is ofzo. Anders heb je steeds de boel in focus op de afstand van de persoon terwijl de knop ingedrukt werd :p

Ik kan in me camera de focus mode instellen, continu focus of singel focus. Dus dat ga ik uit testen als ik het werkend heb wat het beste moment is om te focussen.

Maar ik ben onder tussen al weer een stuk wijzer, dankje daarvoor.

Dan is denk ik stap 1, bedenken wat je echt allemaal wilt.

En dan stap 2, daar dingen bij zoeken, beginnende bij 7-segement. Ligt beetje aan de grote hoe makkelijk je hem aan kunt sturen. En met normaal formaat 7-segment zou je makkelijk iets als dit kunnen gebruiken. Is het groter moet je waarschijnlijk al in de weer met transistors...

Zelf ben ik voor dit soort dingen wel fan van een Arduino Nano. Kost bijna niets en is makkelijk op een stukje test print te maken. Veel makkelijker dan een Mega in ieder geval.

allereerst wat een leuk idee. ik zou 2 knoppen maken die rode knop met vertraging. en een knop voor direct, dus met een fotgraaf die op het goede moment drukt. display is prima hoor, niet te moeilijk maken. je zou ook nog een relais kunnen gebruiken voor de verlichting, dan wordt het beter uitgelicht. en gooi er een stel attributen bij, je zult verrast zijn door de gein die de gasten er mee hebben. (sluier etc. )

over display ik stuur 8 cijfers aan met 2 lijnen via I2C, driver is beschikbaar.

Ik ben weer veder aan het denken geweest. En heb om te beginnen een blokschema gemaakt, met wat die moet kunnen en in welke volgorde. Ik heb in me hoofd wat ik wil, hoop dat het duidelijk is voor een ander. blockschema.pdf Ik heb de pin gebruiken uit dit bestand gehaald.

De optie om meteen een foto te maken die Shooter voorstelt ga ik nog nog even over nadenken. (blokschema had ik al gemaakt)

Voor het display, wou ik wel grotere 7 segment display's gebruiken. Deze display's had ik gevonden. Deze werken alleen op 8,6V en max 10V dus die moet ik aansturen via transistor of optocouplers. En moet ik een 9v voeding extra inbouwen. Voor het dubbele display ga ik me veder inlezen over multiplex of dat een optie is.

Wat zou ik nodig hebben : 1 - Arduino mega 3 - led's - Led Ready, Led Running , Led Finish 1 - 3 standen schakelaar voor keuze van het programma wat uitgevoerd moet worden (1 ,2 of 3 foto's) 1 - 7 segment display die aangeeft hoeveel foto's er nog gemaakt worden. 2 - 7 segment die aftelt van 10 naar 00 21 - optocoupler of transistor tbv 7-segment display's 2 - relai's of optocouplers voor het aansturen van de focus en trigger camera 2 - voeding, Arduino en display's

Ik ga me nu goed inlezen op wat voor display's ik wil gaan gebruiken. En me verdiepen in de code te schrijven. Ik wou wel een display van rond de 5cm per cijfer. Valt goed op, en is voor de mensen die slecht kunnen lezen ook goed te zien. Je staat er toch gauw minimaal 1,5 tot 2 meter van af.

De verlichting wordt geregeld door de camera zelf, die 1 of 2 flitsers aanstuurt op het moment dat de foto gemaakt wordt. Dus dit loopt buiten de arduino om. Het was ook de bedoeling om een bak met props (atributen, sjaals, hoedjes enz.) er bij te zetten.

kijk eens display aansturing met 2 pinnen en heeft zelfs drukknoppen. niks solderen gewoon schroeven op de goede plek en klaar. voeding is 5 volt (beter niet uit de arduino maar direct op de voeding aansluiten. je kunt zelfs een paar batterijen gebruiken hoor, en bijv een NANO lekker simpel allemaal. ik heb ze liggen net als vele andere.

@Schooter, ik weet niet wat je met je link gedaan hebt maar werken doet hij niet. Maar inderdaad, je hebt mooie SPI of I2C modules maar deze hebben vaak niet zo grote digits.

@jeffrl, Mooi dat je een duidelijk plan aan het maken bent. Toch wat opmerkingen:

Allereerst de 7-seg. Ik dacht al dat je misschien voor grotere getallen wilde gaan dan de standaard 7-segment displays. Wat ik al zei, dit maakt aansturen iets lastiger. Zoals je zelf al aan gaf hebben ze een hogere spanning nodig. Als ik jou was zou ik wel op zoek gaan naar een common anode 7-segment scherm. Waar je nu naar linkte is een common kathode) alle - aan elkaar. Common anode is makkelijker aan te sturen. Misschien deze? En bedenk je, het blijven ledjes, deze stuur je NIET aan met een spanning maar met een stroom. Voor ieder segment heb je ook nog een stroomlimiet nodig, makkelijkste is een weerstand. Dit betekend wel dat je niet zomaar voor een 9V voeding kunt gaan. Ik zou daarom voor een 12V voeding gaan, dan heb je wat extra ruimte voor de weerstanden. En voor arduino en display heb je aan een voeding genoeg. En ik denk dat je voor zo'n avond de camera en de flitsers ook een een voeding wilt voeden. Wat vragen deze voor spanningen en stromen?

De displays moet je aansturen met transistors, niets optocouplers ;) Als je een common anode display hebt kan dit makkelijk met een NPN transistor.

Ook moet je denk ik afwegen of je het waard vind om een extra display toe te voegen alleen maar om 10 te kunnen tonen.

Multiplexen van het scherm is wel goed mogelijk, zijn verschillende libraries al wel voor. Goed te doen maar moet je wel op inlezen. Ook moet je hier de sturing van de displays op aanpassen.

Komen we gelijk op de Arduino. Ik weet niet hoe goed je kunt solderen (maar aangezien je met losse grote 7-segment schermen komt kan je daar al niet omheen) maar ik zou je afraden om met losse draadjes/dupond draden/jumper wires de boel aan elkaar te maken. Daarvoor is het idee te mooi en de kans op problemen te groot. Ik zou daarom zo veel mogelijk solderen en van experimenteerprint gebruik maken. Ik zou dan ook lekker een Arduino Nano pakken. Deze laat zich makkelijker in een semi vaste opstelling plaatsen dan een Mega. Een aantal pinnen kom je, zeker moet multiplexen, echt wel mee uit.

De 3 standen schakelaar heeft 2 pinnen ;) En de 3 standen zijn dan pin A, geen pin en pin B verbonden. Maar wat ik al zei is het eigenlijk net zo makkelijk een drukknop te maken waarmee je het in stelt. Dan kan je zonder moeite ook naar 9 (max wat op 1 digit past) gaan als je zou willen.

Voor de camera zou ik wel optocouplers pakken. Goedkoop, niet mechanisch, klein en makkelijk aan te sturen.

Van de status leds zie ik niet echt de meerwaarde afgezien van misschien de ready. Dit zou ik dan als verlichte knop toepassen (knop opgelicht is klaar om ingedrukt te worden). Voor de rest lijkt mij het aftellen al wel meer dan indicatie genoeg.

Verder zou je kunnen denken om de booth uit te lichten met ledstrips. Ze zijn goedkoop en kunnen de boel net wat opvallender maken. Deze zou je uit kunnen zetten op het moment dat een foto gemaakt wordt om de foto's misschien kleur echter te laten.

Er gaat wel eens iets mis met het plakken van links en wat de forumsoftware er vervolgens mee doet.

Dit is de link (klik !) nadat ik 'm met de hand gekopieerd heb en ook werkelijk getest heb of ie werkt. Moest 'm 3 keer verbeteren voor ie werkt, maar here you go!

mijn excuses maar mas3 heeft het al gedaan. die tm1638 wordt ook voor grotere gebruikt, is een kwestie van ebay etc. maar deze heb ik liggen.

je kunt de leds, eruit knippen en dan draadjes gebruiken naar jouw status leds.

zelfde voor de drukknoppen.

Ahh, ja, Julian :)

De TM1638 is inderdaad een leuke chip met een lichtelijk cryptische datasheet maar ongeschikt voor grote displays. Hij kan namelijk maar steeds 1 led per keer doen. Dus een groot 7-segment met 3 of 4 ledjes in serie gaat niet lukken.

Maar goed, direct multiplexen vanaf de Arduino kan ook. Kost je (voor 3 displays) 10 pinnen (11 als je ook de punt wilt) en 10/11 NPN en 3 PNP transistors. Hou je ruim voldoende pinnen op een Nano over voor veel toeters en bellen.

3 ledjes gaat nog prima hoor in 5 V, en de chip mag 7 volt hebben dus zelfs 4 kan nog goed.

ik weet alleen helemaal niet of de jef wel zovel wil solderen als hij een beetje ingelezen is, denkt hij waarschijnlijk, hou het simpel.
de displays kun je ook gebruiken als een soort tijdbalk.
en die units uit de link hebben zelfs 8 ledjes bovenaan waar dat natuurlijk prima mee kan.

septillion: @Schooter, ik weet niet wat je met je link gedaan hebt maar werken doet hij niet. Maar inderdaad, je hebt mooie SPI of I2C modules maar deze hebben vaak niet zo grote digits.

@jeffrl, Mooi dat je een duidelijk plan aan het maken bent. Toch wat opmerkingen:

Allereerst de 7-seg. Ik dacht al dat je misschien voor grotere getallen wilde gaan dan de standaard 7-segment displays. Wat ik al zei, dit maakt aansturen iets lastiger. Zoals je zelf al aan gaf hebben ze een hogere spanning nodig. Als ik jou was zou ik wel op zoek gaan naar een common anode 7-segment scherm. Waar je nu naar linkte is een common kathode) alle - aan elkaar. Common anode is makkelijker aan te sturen. Misschien deze? En bedenk je, het blijven ledjes, deze stuur je NIET aan met een spanning maar met een stroom. Voor ieder segment heb je ook nog een stroomlimiet nodig, makkelijkste is een weerstand. Dit betekend wel dat je niet zomaar voor een 9V voeding kunt gaan. Ik zou daarom voor een 12V voeding gaan, dan heb je wat extra ruimte voor de weerstanden. En voor arduino en display heb je aan een voeding genoeg. En ik denk dat je voor zo'n avond de camera en de flitsers ook een een voeding wilt voeden. Wat vragen deze voor spanningen en stromen?

De displays moet je aansturen met transistors, niets optocouplers ;) Als je een common anode display hebt kan dit makkelijk met een NPN transistor.

Mijn camera heeft 2 accu's, dus die trekt het wel een hele avond. Normaal op een feestje verbruik ik nog geen halve accu en dan maak ik ook behoorlijk wat foto's. Of ik ga flitsers gebruiken op batterijen of 220. Daar ga ik naar kijken als ik alles ga inbouwen.

Over de 7-seg, ik ben aan het zoeken geweest hoe je ze kan aansturen. Nu zag ik driver-ic's(weet niet of ik de naam goed heb) die heb je in 2 uitvoering. low-side driving ULN2003 en high-side driving UDN2981. Kan je deze direct aansturen via de Arduino, of moet hier nog een weerstand tussen? Heb hopelijk een goed voorbeeld getekend met fritzing. (Ik zag dat er een draad tussen de arduino en de uln2003 mist) |460x500

septillion: Ook moet je denk ik afwegen of je het waard vind om een extra display toe te voegen alleen maar om 10 te kunnen tonen.

Multiplexen van het scherm is wel goed mogelijk, zijn verschillende libraries al wel voor. Goed te doen maar moet je wel op inlezen. Ook moet je hier de sturing van de displays op aanpassen.

Komen we gelijk op de Arduino. Ik weet niet hoe goed je kunt solderen (maar aangezien je met losse grote 7-segment schermen komt kan je daar al niet omheen) maar ik zou je afraden om met losse draadjes/dupond draden/jumper wires de boel aan elkaar te maken. Daarvoor is het idee te mooi en de kans op problemen te groot. Ik zou daarom zo veel mogelijk solderen en van experimenteerprint gebruik maken. Ik zou dan ook lekker een Arduino Nano pakken. Deze laat zich makkelijker in een semi vaste opstelling plaatsen dan een Mega. Een aantal pinnen kom je, zeker moet multiplexen, echt wel mee uit.

De bedoeling was om alles netjes te solderen, en zo min mogelijk jump-wire te gaan gebruiken.

septillion: Verder zou je kunnen denken om de booth uit te lichten met ledstrips. Ze zijn goedkoop en kunnen de boel net wat opvallender maken. Deze zou je uit kunnen zetten op het moment dat een foto gemaakt wordt om de foto's misschien kleur echter te laten.

Optie ga ik meenemen :)

@shooter : Ik ga kijken naar optie die jij zei. En het solderen moet we lukken, project hoeft niet binnen een week af te zijn dus dat scheelt weer :)

de uln2803 heeft zelf 8 poorten dus dan kan het hele display erop. als je ze combineert dan kun je zelfs 7 cijfers naast elkaar in multiplex schakelen. dan krijg je mogelijkheden te over.

19 maart is er radiovlooienmarkt in rosmalen, daar kun je de onderdelen goedkoop krijgen.

3 ledjes in 5V, das krap... Dat is net 1,6V per ledje. Bij een rood ledje met lage stromen staat er al snel 1,8V over een ledje en bij normale stromen al snel 2V. Het genoemde schema spreekt van een normale spanning van 8,6V voor 4 ledjes, dat is 2,15V per ledje en dat is geen gek getal. Dus met de TM1638 gaat het niet lukken, ook niet op 7V.

Dus zijn grote schermen een vereiste ontkom je bijna niet aan solderen. Ik heb wel eens modules met een groot 7-segment gezien maar daar betaal je de hoofdprijs voor...

@jeffrl, wat zijn je soldeer skills? Of ben je bereid het te leren/proberen?

Je kan de uln2803 of de udn2981 wel rechtstreeks aan de arduino hangen? Of moeten hier dan nog een weerstand tussen?

Mijn soldeerskills zijn minimaal. Draadjes aan elkaar en weerstanden solderen. Maar ben zeker bereid me skills uittebreiden.

De ULN2803 is prima direct aan de Arduino aan te sluiten. De UDN2981 ken ik niet maar lijkt als ik zo naar de datasheet kijk een high side variant van de ULN2803 te zijn. Dan is deze ook prima aan te sturen. Maar ik weet niet hoe makkelijk je die UDN2981 kunt krijgen, is lang niet zo veel gebruikt als de ULN2803. Je zou ook gewoon losse PNP of P-mos kunnen gebruiken, je hebt er toch maar 1 per 7-segment nodig als je een common anode display gebruikt.

Je hebt overigens wel een weerstand per segment nodig (7 + 1 voor de punt).

Nouwja, als je draadjes aan elkaar kunt maken lijkt me dat prima. Dat is namelijk lastiger dan een printplaat :smiley: