loop aantal keer (panorama statiefkop)

Arduino specifieke Software
Berichten: 4
Geregistreerd: 21 Okt 2012, 16:27

loop aantal keer (panorama statiefkop)

Berichtdoor hanskes » 21 Okt 2012, 16:31

Ik ben bezig met een panobot, een automatische panorama statiefkop. Voor mij is eigenlijk alles nieuw, elektronica en arduino. Ik heb een simpel programma geschreven wat een stappenmotor een bepaalde rotatie laat maken (90 graden) en vervolgens een foto neemt. Ik wil deze code 4x uit laten voeren en dan laten stoppen. Hoe kan ik dit voor elkaar krijgen?
Dit is de code die ik tot nu toe heb:

Code: Alles selecteren
#define SHUTTER_PIN 7
int Distance = 0;  // Record the number of steps we've taken

void setup() {               

  pinMode(8, OUTPUT);     
  pinMode(9, OUTPUT);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);

}

void loop()   

{
  digitalWrite(9, HIGH);
  delayMicroseconds(60);         
  digitalWrite(9, LOW);
  delayMicroseconds(60);
  Distance = Distance + 1;   // record this step
 
  // Check to see if we are at the end of our move

  if (Distance == 21481)  // 4 fotos per omwenteling (stappenmotor met 1:26 gearbox en shield met microstappen (1:16)
 
  {

    Distance = 0;
    // Now pause for a second
    delay(1000); 
    digitalWrite(SHUTTER_PIN, LOW);
    delay(2000);  // lengte schots
    digitalWrite(SHUTTER_PIN, HIGH);
  }
 
}


Advertisement

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: loop aantal keer (panorama statiefkop)

Berichtdoor pjh » 22 Okt 2012, 00:40

Code: Alles selecteren
#define SHUTTER_PIN 7

void setup() {               
  pinMode(8, OUTPUT);     
  pinMode(9, OUTPUT);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
}

void loop(){
  fotoOp(21481);// 4 fotos per omwenteling (stappenmotor met 1:26 gearbox en shield met microstappen (1:16)
  fotoOp(21481);
  fotoOp(21481);
  fotoOp(21481);
  while(1);
}

void fotoOp(unsigned long DistanceMax){
  for (unsigned long Distance =0; Distance < DistanceMax; Distance++){
    digitalWrite(9, HIGH);
    delayMicroseconds(60);         
    digitalWrite(9, LOW);
    delayMicroseconds(60);
  }
  // Now pause for a second
  delay(1000);
  digitalWrite(SHUTTER_PIN, LOW);
  delay(2000);  // lengte schots
  digitalWrite(SHUTTER_PIN, HIGH);
}



Ik heb de inhoud van je loop naar een aparte void verplaatst. Deze roep ik vervolgens vanuit de loop gewoon 4 keer aan.
Met de while(1) opdracht, blijft hij hangen in een oneindige loop. '1' blijft immers altijd 'waar' in de digitale wereld.
Ik snap alleen niet hoe je die stepper aanstuurt. Daarom weet ik niet of je code anders moet.

Berichten: 14
Geregistreerd: 25 Mei 2014, 09:45

Re: loop aantal keer (panorama statiefkop)

Berichtdoor Oscar f1 » 25 Mei 2014, 10:06

Hallo Hanskes,

ik ben erg benieuwd of je project gelukt is.

Als dat kan/mag wil ik een zelfde project beginnen.
In eerste instantie met één stappenmotor en een relais voor de camera ontspanknop.
Heb jij het stand-alone werkend, zodat je het ook op locatie kunt gebruiken?

Berichten: 4068
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: loop aantal keer (panorama statiefkop)

Berichtdoor shooter » 25 Mei 2014, 18:28

een arduino werkt goed standalone, alleen de stappenmotor trekt best veel vermogen, en je zult dus een kleine accu nodig hebben.
microsteppen is niet erg precies dus beter een groter gearbox kiezen en volle stappen gebruiken, verder na elke stap uitzetten dan spaar je energie, dus even snel naar de volgende positie en dan stroom uit naar motor.
voor het aantal stappen zie andere discussie
paul deelen
shooter@home.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 16 gasten