Arduino camera en flitser aansturing
22 berichten
• Pagina 2 van 3 • 1, 2, 3
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Arduino camera en flitser aansturing
shooter schreef:nou dat vindt ik wel tegenvallen, want de foto is maar een wirwar en echt geen hifi.
Zelfs dat niet....
Advertisement
Re: Arduino camera en flitser aansturing
Goedenavond, de afgelopen tijd heel veel zitten puzzelen en uitzoeken, hieronder het tussentijdse resultaat. Nog niet optimaal, maar het begin is er: led1 aan, led 2 aan, led 2 uit, led 1 uit. En met parameters aan/uitgezet, zodat ik later met een menu een array kan vullen dat wordt uitgelezen.
Probleempje met de code is dat hij wel eens een loop overslaat, dus alleen led1 gaat branden. En het duurt erg lang voordat de sequence van voor af aan begint. Er zitten vast en zeker denkfoutjes in, maar ik zie ze niet
Als iemand hier wat aanwijzingen of verbetervoorstellen voor heeft, dan zou ik dat geweldig vinden!
Groet, Kiezel
Probleempje met de code is dat hij wel eens een loop overslaat, dus alleen led1 gaat branden. En het duurt erg lang voordat de sequence van voor af aan begint. Er zitten vast en zeker denkfoutjes in, maar ik zie ze niet
Als iemand hier wat aanwijzingen of verbetervoorstellen voor heeft, dan zou ik dat geweldig vinden!
Groet, Kiezel
- Code: Alles selecteren
// variabelen
int camDelayBefore = 1000; // de tijd voordat de camera(led) aan gaat
int flashDelay = 1000; // de tijd voordat de flitser(led) aan gaat
int flashTime = 2000; // de brandtijd van de flitser(led)
int camDelayAfter = 1000; // de tijd na het uitgaan van de flitser(led) voordat de camera(led) uitgaat
int loopTime = (flashDelay + flashTime + camDelayAfter);
// pinnen benoemen
const int cameraPin = 4; // stuurt camera aan
const int flashPin = 5; // stuurt flitser aan
void setup()
{
// pinnen toewijzen aan variabelen
pinMode(cameraPin, OUTPUT);
pinMode(flashPin, OUTPUT);
}
void loop()
{
unsigned long runTime = millis(); // actuele tijd
unsigned long previousTime = millis(); // verschiltijd
//
if (runTime==camDelayBefore)
{
previousTime = runTime; // timer updaten
digitalWrite(cameraPin, HIGH); // zet the cameraPin aan
}
if (runTime==(camDelayBefore+flashDelay))
{
previousTime = runTime; // timer updaten
digitalWrite(flashPin, HIGH); // zet de flashPin aan
}
if (runTime==(flashDelay+flashTime))
{
previousTime = runTime; //timer updaten
digitalWrite(flashPin, LOW); // zet de flashPin uit
}
if (runTime==(loopTime))
{
previousTime = runTime; // timer updaten
digitalWrite(cameraPin, LOW); // zet de cameraPin uit
delay(2000); // wachten
}
}
Re: Arduino camera en flitser aansturing
Leer de voorbeeldsketch BlinkWithoutDelay te begrijpen en dan snap je wat er hier verkeerd gaat.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001
Re: Arduino camera en flitser aansturing
Hi Rudi, dank dat je de moeite hebt genomen om te reageren!
Afgelopen tijd heb ik van alles geprobeerd, inclusief variaties op het thema "blinkwithoutdelay". Aangezien ik niet op leraren, collega's of medestudenten kan terugvallen probeer ik wat hulp via het forum te krijgen. Een in mijn ogen wat algemene verwijzing helpt mij niet zoveel verder. Zou je wat specifieker kunnen zijn in het aanduiden waar mijn denkfout zit?
Alvast bedankt!
Groet, Kiezel
Afgelopen tijd heb ik van alles geprobeerd, inclusief variaties op het thema "blinkwithoutdelay". Aangezien ik niet op leraren, collega's of medestudenten kan terugvallen probeer ik wat hulp via het forum te krijgen. Een in mijn ogen wat algemene verwijzing helpt mij niet zoveel verder. Zou je wat specifieker kunnen zijn in het aanduiden waar mijn denkfout zit?
Alvast bedankt!
Groet, Kiezel
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Arduino camera en flitser aansturing
a) ik zou altijd met een timer werken omdat je daarmee meer flexibiliteit krijgt om andere code gewoon door te laten lopen. "Pseudo parallel verwerking"
b) Je gaat er altijd uit dat je tests precies op dat moment de juiste waarde hebben. Maar wat doe je als je al voorbij dat moment bent ?
b) Je gaat er altijd uit dat je tests precies op dat moment de juiste waarde hebben. Maar wat doe je als je al voorbij dat moment bent ?
Re: Arduino camera en flitser aansturing
de delay eruit halen en de runtime updaten.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Arduino camera en flitser aansturing
Tks Nico, Shooter, gaan we uitproberen. Resultaten zal ik hier posten.
Groet, Kiezel
Groet, Kiezel
Re: Arduino camera en flitser aansturing
Er was weer even tijd voor wat puzzelwerk. Doorgevoerde wijzigingen:
- >= ipv == bij het vergelijken van de waarden in de vergelijkingen beviel niet zo goed, daar moet ik nog eens naar kijken. Vooralsnog doet de == het aardig.
- timer update bij elke stap.
Dit lijkt te werken.
Feedback is welkom!
- >= ipv == bij het vergelijken van de waarden in de vergelijkingen beviel niet zo goed, daar moet ik nog eens naar kijken. Vooralsnog doet de == het aardig.
- timer update bij elke stap.
Dit lijkt te werken.
Feedback is welkom!
- Code: Alles selecteren
// variabelen
int solOpen1 = 1000;
int solTime = 500;
int camDelayBefore = 1000;
int flashDelay = 1000;
int flashTime = 2000;
int camDelayAfter = 1000;
int solenoidTime = (solOpen1 + solTime);
int loopTime = (solenoidTime + camDelayBefore + flashDelay + flashTime + camDelayAfter);
int waitTime = 100;
// pinnen benoemen
const int cameraPin = 4; // stuurt camera aan
const int flashPin = 5; // stuurt flitser aan
const int solenoid1Pin = 26; //stuurt solenoid 1 aan
void setup()
{
// pinnen toewijzen aan variabelen
pinMode(cameraPin, OUTPUT);
pinMode(flashPin, OUTPUT);
pinMode(solenoid1Pin, OUTPUT);
}
void loop()
{
unsigned long runTime = millis(); // actuele tijd
unsigned long previousTime = millis(); // verschiltijd
//
previousTime = runTime; // timer updaten
if (runTime==solOpen1)
{
previousTime = runTime; // timer updaten
digitalWrite(solenoid1Pin, HIGH); // zet de solenoid1Pin aan
}
if (runTime == (solOpen1+solTime))
{
previousTime = runTime; // timer updaten
digitalWrite(solenoid1Pin, LOW); // zet de solenoid1Pin uit
}
if (runTime==(solenoidTime + camDelayBefore))
{
previousTime = runTime; // timer updaten
digitalWrite(cameraPin, HIGH); // zet de cameraPin aan
}
if (runTime==(solenoidTime+camDelayBefore+flashDelay))
{
previousTime = runTime; // timer updaten
digitalWrite(flashPin, HIGH); // zet de flashPin aan
}
if (runTime==(solenoidTime+camDelayBefore+flashDelay+flashTime))
{
previousTime = runTime; //timer updaten
digitalWrite(flashPin, LOW); // zet de flashPin uit
}
if (runTime==(solenoidTime+camDelayBefore+flashDelay+flashTime+camDelayAfter))
{
previousTime = runTime; // timer updaten
digitalWrite(cameraPin, LOW); // zet de cameraPin uit
}
if (runTime >= (loopTime+waitTime)) // wachten tot de loop kan herstarten
{
previousTime = runTime; // timer updaten
//doorgaan
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Arduino camera en flitser aansturing
tip1:
Nu het beschikbaar is, gebruik liever de [ code2=cpp ] en [ /code2 ] (zonder de spaties). Dat maakt alles een stuk prettiger om te lezen:
cpp code
Nu het beschikbaar is, gebruik liever de [ code2=cpp ] en [ /code2 ] (zonder de spaties). Dat maakt alles een stuk prettiger om te lezen:
cpp code
// variabelen
int solOpen1 = 1000;
int solTime = 500;
int camDelayBefore = 1000;
int flashDelay = 1000;
int flashTime = 2000;
int camDelayAfter = 1000;
int solenoidTime = (solOpen1 + solTime);
int loopTime = (solenoidTime + camDelayBefore + flashDelay + flashTime
+ camDelayAfter);
int waitTime = 100;
// pinnen benoemen
const int cameraPin = 4; // stuurt camera aan
const int flashPin = 5; // stuurt flitser aan
const int solenoid1Pin = 26; //stuurt solenoid 1 aan
void setup() {
// pinnen toewijzen aan variabelen
pinMode(cameraPin, OUTPUT);
pinMode(flashPin, OUTPUT);
pinMode(solenoid1Pin, OUTPUT);
}
void loop() {
unsigned long runTime = millis(); // actuele tijd
unsigned long previousTime = millis(); // verschiltijd
//
previousTime = runTime; // timer updaten
if (runTime == solOpen1) {
previousTime = runTime; // timer updaten
digitalWrite(solenoid1Pin, HIGH); // zet de solenoid1Pin aan
}
if (runTime == (solOpen1 + solTime)) {
previousTime = runTime; // timer updaten
digitalWrite(solenoid1Pin, LOW); // zet de solenoid1Pin uit
}
if (runTime == (solenoidTime + camDelayBefore)) {
previousTime = runTime; // timer updaten
digitalWrite(cameraPin, HIGH); // zet de cameraPin aan
}
if (runTime == (solenoidTime + camDelayBefore + flashDelay)) {
previousTime = runTime; // timer updaten
digitalWrite(flashPin, HIGH); // zet de flashPin aan
}
if (runTime == (solenoidTime + camDelayBefore + flashDelay + flashTime)) {
previousTime = runTime; //timer updaten
digitalWrite(flashPin, LOW); // zet de flashPin uit
}
if (runTime
== (solenoidTime + camDelayBefore + flashDelay + flashTime
+ camDelayAfter)) {
previousTime = runTime; // timer updaten
digitalWrite(cameraPin, LOW); // zet de cameraPin uit
}
if (runTime >= (loopTime + waitTime)) // wachten tot de loop kan herstarten
{
previousTime = runTime; // timer updaten
//doorgaan
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Arduino camera en flitser aansturing
Tip 2:
Je gaat er vanuit dat je testen op een exact tijdstip voorkomen. bijv:
cpp code
En als runtime er nu overheen is gegaan?
als ik je code goed begrijp heb je een volgorde van stappen die je wilt doorlopen. Wat meestal handiger kan zijn is eerst ff een tijdlijntje te trekken wat er moet gebeuren. (kost een velletje papier)
Op basis van die tijdlijn kun je de verschillende stappen identificeren en via een truukje je code een stuk overzichtelijker maken. Ik heb dat al een eerder uitgelegd. Moet ff kijken waar dat staat
Je gaat er vanuit dat je testen op een exact tijdstip voorkomen. bijv:
cpp code
if (runTime == (solenoidTime + camDelayBefore + flashDelay + flashTime))
En als runtime er nu overheen is gegaan?
als ik je code goed begrijp heb je een volgorde van stappen die je wilt doorlopen. Wat meestal handiger kan zijn is eerst ff een tijdlijntje te trekken wat er moet gebeuren. (kost een velletje papier)
Op basis van die tijdlijn kun je de verschillende stappen identificeren en via een truukje je code een stuk overzichtelijker maken. Ik heb dat al een eerder uitgelegd. Moet ff kijken waar dat staat
22 berichten
• Pagina 2 van 3 • 1, 2, 3
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 14 gasten