Σελίδα 5 από 9 ΠρώτηΠρώτη ... 3 4 5 6 7 ... ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 41 έως 50 από 83

Θέμα: jbc σταθμος με arduino [debugging]

  1. #41
    Μέλος Το avatar του χρήστη finos
    Όνομα
    Βαγγελης
    Εγγραφή
    Feb 2013
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.774

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Fire Doger Εμφάνιση μηνυμάτων
    Σκοπός ενός project είναι να μάθεις απ' τα προβλήματα που σου εμφανίζονται.
    Αν συνέχεια κάνεις κύκλους γύρο από ότι δεν δουλεύει δεν θα μάθεις ποτέ.
    Ο έλεγχος θερμοκρασίας είναι ένα πολύ βασικό κεφάλαιο στον έλεγχο γιατί είναι ένα πολύ αργό-εύκολο σύστημα για μελέτη.
    Μέχρι όμως να το κάνεις αξιόλογο έχεις πολύ δρόμο μπροστά σου.
    Υπάρχουν διάφοροι τρόποι ελέγχου που μπορείς να εφαρμόσεις. Ο καθένας καλύτερος και δυσκολότερος απ' τον προηγούμενο.
    On-Off
    PID
    Adaptive PID
    Model Predictive Control (MPC)

    Εσύ βρίσκεσαι μόλις στον 2ο που δεν έχεις και το υπόβαθρο να τον εφαρμόσεις. Άρα το μόνο που θα κερδίσεις απ' το project είναι ο μΕ και ηλεκτρονικά.
    Αν τα προσπερνάς και αυτά μια τρύπα στο νερό έκανες.

    Πόση ώρα θέλει το sample n hold του max μέτρησες?


    θα κανω κατι του στιλ on off

    Κώδικας:
    const int heater = 3;
    int temp;
    int tempset;
    bool pid_enable = true;
    void setup() {
     pinMode(heater, OUTPUT);
    }
    void loop() {
     if (pid_enable == true) {
      if (temp < tempset) {
       digitalWrite(heater, HIGH);
      }
      if (temp > tempset) {
       digitalWrite(heater, LOW);
      }
     }
    }

    0 Not allowed! Not allowed!

  2. #42
    Μέλος Το avatar του χρήστη finos
    Όνομα
    Βαγγελης
    Εγγραφή
    Feb 2013
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.774

    Προεπιλογή

    εχω μια απλή 16χ2 οθονη κι κι ενώ μου γραφει κανονικα έναν intiger κι φτανει στο 400 (εκει που θελω δλδ ) όταν παω να τον μειωσω οι αριθμοι μενουν !!! δλδ αν εχω παει στα 400 κι κατεβω στα 58 θα γραψει 580 !!!

    τι φαση ?
    να ανεβασω video ?

    Κώδικας:
    #include <LiquidCrystal.h>
    const int encoderPinA = 3;
    const int encoderPinB = 2;
    unsigned volatile int tempset=0;
    volatile int n = LOW;
    int encoderPinALast = LOW;
    LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
    void setup() {
      lcd.begin(16,2);
      // put your setup code here, to run once:
     pinMode(encoderPinA, INPUT_PULLUP);
     pinMode(encoderPinB, INPUT_PULLUP); 
     pinMode(13, OUTPUT);
     attachInterrupt(digitalPinToInterrupt(encoderPinA), updateEncoder, CHANGE);
     attachInterrupt(digitalPinToInterrupt(encoderPinB), updateEncoder, CHANGE);
     Serial.begin(9600);
    }
    void loop() {
     //Serial.print("loop");//debug
     /*
      lcd.setCursor(0, 1);
     //lcd.print(" set=");
     //lcd.print(tempset);//temp=000 set=000 (15)
      delay(1000);
    */
    }
    void updateEncoder() {
     n = digitalRead(encoderPinA);
     if ((encoderPinALast == LOW) && (n == HIGH)) {
      if (digitalRead(encoderPinB) == LOW) {
          if(tempset>0 ){
       tempset = tempset -1;
          }
      }
      else {
       if(tempset<400){
       tempset = tempset + 1;
       }
      }
      Serial.println(tempset);
        lcd.setCursor(0, 0);
      lcd.print("temp=");
      lcd.print(tempset);
     }
     encoderPinALast = n;
    }

    0 Not allowed! Not allowed!

  3. #43
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Κώδικας:
    if(tempset>100) //100-999
      lcd.print(tempset);
    else if (tempset>10){ //10-99
      lcd.print(tempset);
      lcd.print(" ");
    }else{ //0-9
      lcd.print(tempset);
      lcd.print("  ");
    }

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη Fire Doger : 15-10-17 στις 22:57

  4. #44
    Μέλος Το avatar του χρήστη finos
    Όνομα
    Βαγγελης
    Εγγραφή
    Feb 2013
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.774

    Προεπιλογή

    δεν το καταλαβα !

    0 Not allowed! Not allowed!

  5. #45
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Έχεις 3 χαρακτήρες. 123
    Έχεις 3 θέσεις για αυτούς στην οθόνη.
    Όταν τους γράφεις ενημερώνονται 3/3 θέσεις.
    Έχεις 2 χαρακτήρες. 45
    Έχεις 3 θέσεις για αυτούς στην οθόνη.
    Όταν τους γράφεις ενημερώνονται 2/3 και βλέπεις 453
    Άρα πρέπει να κάνεις τους 2 χαρακτήρες 3, το μόνο λογικό είναι να μπει από πίσω ένα κενό έτσι ώστε να ενημερωθεί και η 3η θέση.
    Αντίστοιχα και στον 1 χαρακτήρα πρέπει να βάλεις 2 κενά.

    1 Not allowed! Not allowed!

  6. #46
    Μέλος Το avatar του χρήστη finos
    Όνομα
    Βαγγελης
    Εγγραφή
    Feb 2013
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.774

    Προεπιλογή

    Κώδικας:
    #include <LiquidCrystal.h>
    const int encoderPinA = 3;
    const int encoderPinB = 2;
    unsigned  int tempset=0; //volatile
    volatile int n = LOW;
    int encoderPinALast = LOW;
    LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
    void setup() {
      lcd.begin(16,2);
      // put your setup code here, to run once:
     pinMode(encoderPinA, INPUT_PULLUP);
     pinMode(encoderPinB, INPUT_PULLUP); 
     pinMode(13, OUTPUT);
     attachInterrupt(digitalPinToInterrupt(encoderPinA), updateEncoder, CHANGE);
     attachInterrupt(digitalPinToInterrupt(encoderPinB), updateEncoder, CHANGE);
     Serial.begin(9600);
    }
    void loop() {
     //Serial.print("loop");//debug
     /*
      lcd.setCursor(0, 1);
     lcd.print(" set=");
     //lcd.print(tempset);//temp=000 set=000 (15)
      delay(1000);
    */
    }
    void updateEncoder() {
     n = digitalRead(encoderPinA);
     if ((encoderPinALast == LOW) && (n == HIGH)) {
      if (digitalRead(encoderPinB) == LOW) {
          if(tempset>0 ){
       tempset = tempset -1;
          }
      }
      else {
       if(tempset<400){
       tempset = tempset + 1;
       }
      }
      Serial.println(tempset);
        //lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("temp=");  
      lcd.print("    ");
      lcd.setCursor(5, 0);
      lcd.print(tempset);
     }
     encoderPinALast = n;
     //Serial.println("hi");
     //digitalWrite(13,HIGH);
     //digitalWrite(13,LOW);
    }


    ε αντε γεια ! το έφτιαξα ευχαριστώ Πολυ

    0 Not allowed! Not allowed!

  7. #47
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Τύφλα ν' χουν οι μηχανικοί της JBC

    0 Not allowed! Not allowed!

  8. #48
    Μέλος Το avatar του χρήστη finos
    Όνομα
    Βαγγελης
    Εγγραφή
    Feb 2013
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.774

    Προεπιλογή

    τυφλα να χουν μην πεσουν από τον 8ο με αυτά που βλεπουν

    0 Not allowed! Not allowed!

  9. #49
    Μέλος Το avatar του χρήστη finos
    Όνομα
    Βαγγελης
    Εγγραφή
    Feb 2013
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.774

    Προεπιλογή

    για καποιο λογο το Mosfet (irf9540) όταν είναι χωρις φορείο (της αντηστασης του jbc ) δουλεει κανονικα ανοιγει κι κλινει κανονικα
    μολις σηνδεσω το jbc (2.9Ω ) μενει παντα στο high τι κανω λαθος ?


    ο κωδικας είναι το blink του Arduino κι η εξοδος είναι το pin 13 σχεδιο είναι chematic.png με την μονη αλαγη ότι το mosfet είναι στο pin 13



    edit scope img :DS1Z_QuickPrint1.jpgτο μπλε είναι το pin 13 του Arduino το κιτρινο είναι το source

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη finos : 18-10-17 στις 23:13

  10. #50
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.381

    Προεπιλογή

    Που συνδέεις το φορτίο σου πρώτα από όλα ? Επίσης το fet είναι p.
    Χωρίς τρανζίστορ πως θα το κάνεις να δουλέψει σωστά ?
    Αφού ο MCU είναι 5volt , θα κάψεις τις esd διόδους της.πορτας .
    Σε έχει δώσει η 1k pull up

    Sent from my Redmi 4 using Tapatalk

    0 Not allowed! Not allowed!

Σελίδα 5 από 9 ΠρώτηΠρώτη ... 3 4 5 6 7 ... ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. jbc σταθμος με arduino
    By finos in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 19
    Τελευταίο Μήνυμα: 22-03-18, 19:58
  2. Σταθμος Κόλλησης με Arduino Nano.
    By thomasdriver in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 10
    Τελευταίο Μήνυμα: 27-09-16, 19:45
  3. Σταθμος Κόλλησης με Arduino.
    By thomasdriver in forum Μικροελεγκτές
    Απαντήσεις: 41
    Τελευταίο Μήνυμα: 05-07-16, 12:29
  4. Κατασκευη σταθμου rework με arduino
    By mantzas in forum Όργανα & Εξοπλισμός
    Απαντήσεις: 7
    Τελευταίο Μήνυμα: 29-04-15, 15:33
  5. Debugging Board
    By shoco in forum Όργανα & Εξοπλισμός
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 28-03-10, 11:35

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

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