Εμφάνιση αποτελεσμάτων : 1 έως 2 από 2
  1. #1
    Το avatar του χρήστη furtune
    Μέλος
    Όνομα
    Billy
    Εγγραφή
    Nov 2005
    Περιοχή
    θεσσ/νικη
    Μηνύματα
    137

    Προεπιλογή Ερωτιση για ARDUINO duemillanove, programa pressas.

    Γεια σας. Εχω στα χερια μου μια πρεσσα που ανοιγει τρυπες στα ημερολογια για να γινει βιβλιοδεσια.
    Το προβλημα του ηταν στην πλακετα και μετα απο πολλες δοκιμες κατεληξα οτι η βλαβη προερχεται απο τον μικροεπεξεργαστη που εχει επάνω. Η συσκευη εχει ενα κουμπι που οταν το πατας ξεκιναει την λειτουργεια για ενα ανεβοκατευασμα και μετα σταματαει οσο και να το κρατισεις πατημενο το κουμπι. Χρειάζεται ξανα πατημα για ξεκινισει λειτουργεια για νεο κυκλο. Το προβλημα της συσκευης ειναι οτι δεν σταματουσς την λειτουργεια ακομα και να εβγαζες τον διακοπτη εκτος τελειος. Με λιγα λογια ο μικροεπεξεργαστης εμπαινε σε μια ρουτινα και δεν εβγαινε.

    Σκεφτικα να φτιαξω δικο μου προγραμμα με ARDUINO και απο τι φενεται τα καταφερα. ( Ειμαι αρχαριος στο προγραμματισμο).

    Το μονο προβλημα που εχω ειναι το πως θα καθορισω , η συσκευη να κανει τον κυκλο μια φορα ακομα και αν ο διακοπτης παραμενει πατημενος, και να ξεκινησει την λειτουργια μετα απο νεο πατημα. Ανεβάζω τον κώδικα.SA400078.jpg

    #define exit1 10
    #define exit2 11
    #define input1 8
    #define input2 9
    #define start 7
    int a=0; //dilonw metavlites to a einai o diakoptis pou to patas me to podi
    int b=0;
    int c=0;
    void setup()
    {
    pinMode(exit1,OUTPUT); //dilonw ti tha einai to kathe pin eisodos i eksodos
    pinMode(exit2,OUTPUT);
    pinMode(input1,INPUT);
    pinMode(input2,INPUT);
    pinMode(start,INPUT);

    }
    void loop(){

    a= digitalRead(start); //diavase ton diakopti
    if(a == HIGH) //An o diakoptis einai patimenos
    {
    b= digitalRead(input1); //diavase to pin 8
    delay(50);
    c= digitalRead(input2); //diavase to pin 9
    delay(50);
    while(b<c){ //gia oso xrono to b<c

    digitalWrite(exit1,HIGH); //kane high thn eksodo 1
    delay (50); //argise 50 mikro sec
    delay(50);
    c= digitalRead(input2);
    delay(50);

    }
    digitalWrite(exit1,LOW);
    b= digitalRead(input1);
    delay(50);
    c= digitalRead(input2);
    delay(50);
    while(c<b){
    digitalWrite(exit2,HIGH);
    delay (50);
    b= digitalRead(input1);
    delay(50);
    c= digitalRead(input2);
    delay(50);
    }
    digitalWrite(exit2,LOW);
    }
    }

  2. #2

    Νέο Μέλος
    Όνομα
    Σπύρος
    Εγγραφή
    Dec 2011
    Περιοχή
    Νίκαια
    Μηνύματα
    1

    Προεπιλογή

    Καλησπερα! Βασικα δεν εξηγεις τι κανουν ολες οι εξοδοι,εισοδοι,μεταβλητες και γιαυτο η απαντηση μπορει να μην ειναι αυτη που θες... Μια καλη library για ελεγχο button ειναι αυτη http://code.google.com/p/ebl-arduino/. Αν και μπορει να χρειαζεσαι ενα απλο button state detection και να βαλεις ολη τη διαδικασια σε αλλo void και οχι στο void_loop αφου εκει θα "εκτελειται" για παντα. To τελευταιο υπαρχει σαν παραδειγμα στα digitals.

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας