INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Kamera Blitz Signal für Steppermotor
23.02.2021, 19:11
Beitrag #25
RE: Kamera Blitz Signal für Steppermotor
Dann wäre es schön, wenn Du uns das Resultat zeigen würdest.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.02.2021, 12:01
Beitrag #26
RE: Kamera Blitz Signal für Steppermotor
Hi Leute,

komme nicht weiter.

Ziel: Der Counter zählt z.B. 3 Interrupts, dann soll der Motor einen Step machen.

Problem: Mein Nema läuft pausenlos, step by step. Offensichtlich steht "tuWas" immer auf "true".

Hier der neueste Test-Versuchs-Sketch:

Code:
#include <AccelStepper.h>
// Define stepper motor connections and motor interface type. Motor interface type must be set to 1 when using a driver:
#define dirPin 5
#define stepPin 6
#define ledPin 13
#define motorInterfaceType 1
#define stepsPerRevolution  200
// Create a new instance of the AccelStepper class:
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);

static unsigned long last_interrupt_time = 0; //delay for Interrupt reaction
unsigned long interrupt_time;



int i = 0;
volatile unsigned int counter = 0;  // counter; only every third interrupt one step
const byte pin = 2; //define interrupt pin to 2
bool tuWas = false;



void blink()  {  
     interrupt_time = millis();
     if (interrupt_time - last_interrupt_time > 450) {    //if interrupt comes faster than 550ms, ignore it
        last_interrupt_time = interrupt_time;
        delayMicroseconds(3000);
            
        counter++;      
       }
             }



void setup() {
     Serial.begin(38400);    
     pinMode(pin,INPUT_PULLUP);  // Kontakt gegen GND
     attachInterrupt(digitalPinToInterrupt(pin), blink, FALLING); // fallende Flanke
             }



void loop() {
  
   unsigned int tmpCounter;
        
        noInterrupts();           // Interrupts aus
            tmpCounter = counter;          
         if (counter == 3) {            
            tuWas = true;          
            counter = 0;}  
            else if (counter !=3){
            tuWas = false;}          
                          
          
  
    interrupts();              // Interrupts an
        // falls der Counter noch benötigt wird mit tmpCounter arbeiten
    
         Serial.print(F("Counter: "));
         Serial.println(counter);

  
       if (tuWas = true) {    
          digitalWrite(stepPin, HIGH);
          delayMicroseconds(1000);
          digitalWrite(stepPin, LOW); // Stepper läuft trotzdem !?
          delayMicroseconds(1000);
                                
                        }                    
        
        delay(500);   // Stepper läuft trotzdem !?
         digitalWrite(stepPin, LOW);
               }

Wo ist mein Fehler?

LG Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.02.2021, 12:12
Beitrag #27
RE: Kamera Blitz Signal für Steppermotor
Dann lass dir doch den Inhalt von "tuwas" im seriellen Monitor anzeigen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.02.2021, 12:14 (Dieser Beitrag wurde zuletzt bearbeitet: 27.02.2021 12:19 von MicroBahner.)
Beitrag #28
RE: Kamera Blitz Signal für Steppermotor
Bitte drück mal ctrl-T in der IDE, bevor Du Code postest. Deine Einrückungen dienen der totalen Verwirrung.
Das hier:
Code:
if (tuWas = true) {
ist immer wahr, denn Du machst keinen Vergleich sondern eien Zuweisung. Das muss
Code:
if (tuWas == true) {
sein. Oder noch einfacher:
Code:
if (tuWas) {

Dein
Code:
delayMicroseconds(3000);
im Interrupt ist auch ein no go. Du darfst eine Interruptroutine nicht solange blockieren. Z.B. funktioniert dann auch millis() nicht mehr richtig und zählt falsch.

Und wozu überhaupt ein Interrupt:
Code:
//if interrupt comes faster than 550ms, ignore it
Für Signale, die so langsam sind, braucht es keinen Interrupt.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.02.2021, 13:52
Beitrag #29
RE: Kamera Blitz Signal für Steppermotor
OK,

wird alles sofort ausprobiert!

DAnke

LG Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.02.2021, 13:57
Beitrag #30
Thumbs Up RE: Kamera Blitz Signal für Steppermotor
Jetzt klappt`s

Auf zur nächsten Herausforderung.....Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  RC-Signal mit Attiny85 einlesen chcs 4 710 08.12.2020 08:51
Letzter Beitrag: hotsystems
  Kamera Slider mit kleinen Problemen Giuseppe 12 2.249 25.07.2020 13:49
Letzter Beitrag: MicroBahner
  Auto mit Kamera über Bluetooth gnagfloW 4 1.346 19.06.2020 08:23
Letzter Beitrag: gnagfloW
  negatives Signal an analogem Eingang flint74 2 1.345 23.03.2019 23:01
Letzter Beitrag: Tommy56
  Differenz untereinander gestaffelter Werte an Steppermotor vermitteln Snekels 3 1.375 22.10.2018 12:34
Letzter Beitrag: Tommy56
  Arduino/Nano 3 Phasen Signal PWM erzeugen nuernie88 10 6.324 04.07.2017 19:26
Letzter Beitrag: Franz54
  IR Signal Clonen/auswerten raubein01 6 3.702 23.04.2017 02:05
Letzter Beitrag: uxomm
  Steppermotor Frankeg 1 2.263 27.01.2017 22:46
Letzter Beitrag: Tommy56
  PWM Signal imitieren Marc2014 5 2.339 15.10.2016 11:34
Letzter Beitrag: Binatone
  PWM-Signal Ben-g 9 4.787 21.04.2016 13:09
Letzter Beitrag: Ben-g

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste