Εμφάνιση αποτελεσμάτων : 1 έως 8 από 8

Θέμα: DRL controller με arduino

  1. #1
    Μέλος
    Εγγραφή
    Apr 2008
    Περιοχή
    Πειράιας
    Μηνύματα
    33

    Προεπιλογή DRL controller με arduino

    Kαλησπερα σε ολους!!
    επεσε στα χερια μου ενα arduino uno και σκεφτηκα να φτιαξω ενα drl controller ... φυσικα οι γνωσεις μου ειναι πολυ λιγες περι προγραμματισμου για αυτο θα ηθελα την βοηθεια σας!!! θα μπορουσε καποιος να με βοηθησει?

    0 Not allowed! Not allowed!
    Άδραξε την μέρα....

  2. #2
    Μέλος
    Όνομα
    .
    Εγγραφή
    Sep 2011
    Περιοχή
    .
    Μηνύματα
    802

    Προεπιλογή

    Ισως σε βοηθησει:

    http://forum.arduino.cc/index.php?topic=54459.0

    1 Not allowed! Not allowed!

  3. #3
    Μέλος
    Εγγραφή
    Apr 2008
    Περιοχή
    Πειράιας
    Μηνύματα
    33

    Προεπιλογή

    Σε ευχαριστω πολυ για την απαντηση αλλα θα ηθελα να διαχειριστω rgb halo rings...λιγο ποιο δυσκολο

    0 Not allowed! Not allowed!
    Άδραξε την μέρα....

  4. #4
    Μέλος
    Εγγραφή
    Apr 2008
    Περιοχή
    Πειράιας
    Μηνύματα
    33

    Προεπιλογή

    επανερχομαι στο θεμα μιας διαβασα μερικα πραγματακια και εχω ξεκινησει αλλα εχω μερικες αποριες..

    ειπαμε οτι θελω να drl controller για το αμαξι...για τα drl ειναι 70mm halo rings rgb αρα πρεπει να τα διαχειριστω μεσα απο τα pwm pins που εχει το arduino!!!
    οποτε εφοσον εχω 3 χρωματα στο αριστερο drl και αλλα 3 στο δεξι drl θα πρεπει να πιασω ολα τα pwm pins στο arduino !!!
    οποτε εχω βαλει στο breadboard 6 led και τα 3 ειναι συνδεμενα στα pin 3,5,6 και αλλα 3 στα 9,10,11 και στο pin 2 εχω βαλει εισοδο οποτε μολις παρει ταση απο το ignition να μου αναψει τα led λευκα αρα μετα απο 10 δευτερολεπτα και να μολις σβησω το ignition να σβησουν και τα led μετα απο 20 δευτερολεπτα...

    ο κωδικας που εχω φτιαξει (εαν και ντρεπομαι λιγο γιατι ξερω οτι ειναι λαθος) ειναι αυτος:
    const int miza=2;
    const int r1=3;
    const int g1=5;
    const int b1=6;
    const int r2=9;
    const int g2=10;
    const int b2=11;





    void setup() {
    pinMode(miza,INPUT);
    pinMode(r1,OUTPUT);
    pinMode(g1,OUTPUT);
    pinMode(b1,OUTPUT);
    pinMode(r2,OUTPUT);
    pinMode(g2,OUTPUT);
    pinMode(b2,OUTPUT);

    }

    void loop() {
    int buttonState = digitalRead(miza);
    if (buttonState==HIGH)
    {analogWrite(r1,255);
    analogWrite(g1,255);
    analogWrite(b1,255);
    analogWrite(r2,255);
    analogWrite(g2,255);
    analogWrite(b2,255);
    }
    if (buttonState==LOW);

    { analogWrite(r1,0);
    analogWrite(g1,0);
    analogWrite(b1,0);
    analogWrite(r2,0);
    analogWrite(g2,0);
    analogWrite(b2,0);
    }


    }

    Το μονο που εχω καταφερει με αυτο ειναι μολις πατησω το κουμπι δλδ στηλω ταση στο pin2 να αναβουν τα led και μολις το αφησω σβηνουν....
    ερωτηση:
    1)πως μπορω να βαλω delay στο αναμα και στο σβησημο και να μην τα μπερδευει... οταν βαζω delay το αποθηκευει και στο αναμα και στο σβισιμο...
    2)ξερω οτι πρεπει να βαλω τα χρωματα ως σταθερες και να τα ''καλω'' οποτε χρειαζεται αλλα δεν μπορω να το κανω με τιποτα

    Υ.Γ εαν ο κωδικας ειναι λαθος (που ειναι σιγουρα) και θελει καποιος να φτιαξει καποιον αλλο απο την αρχη πολυ ευχαριστως απλα παρακαλω πολυ να εχει και επεξεγηση διπλα για να καταλαβω τι εχει γινει λαθος για να μαθω!!!

    Ευχαριστω πολυ εκ των προτερων....

    0 Not allowed! Not allowed!
    Άδραξε την μέρα....

  5. #5
    Νέο Μέλος
    Όνομα
    φωτης
    Εγγραφή
    Mar 2014
    Περιοχή
    πατρα
    Μηνύματα
    28

    Προεπιλογή

    καλησπέρα , για να βάλεις καθυστέρηση υπάρχει η εντολή delay http://arduino.cc/en/reference/delay και λογικα θα την βάλεις μετά τους ελέγχους που κάνεις . για τα χρώματα δεν έχω ιδέα ,αλλά μάλλον δεν μπορείς να αποφύγεις να τα ¨καλείς¨ κάθε φορά .

    1 Not allowed! Not allowed!

  6. #6
    Μέλος
    Όνομα
    Μιχάλης
    Εγγραφή
    Dec 2003
    Περιοχή
    Athens
    Μηνύματα
    392

    Προεπιλογή

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

    Κώδικας:
    const int miza = 2;
    const int r1 = 3;
    const int g1 = 5;
    const int b1 = 6;
    const int r2 = 9;
    const int g2 = 10;
    const int b2 = 11;
    
    
    
    
    
    
    
    
    
    
    void setup() {
      pinMode(miza, INPUT);
      pinMode(r1, OUTPUT);
      pinMode(g1, OUTPUT);
      pinMode(b1, OUTPUT);
      pinMode(r2, OUTPUT);
      pinMode(g2, OUTPUT);
      pinMode(b2, OUTPUT);
    
    
    }
    
    
    void loop() {
      int buttonState = digitalRead(miza);
      if (buttonState == HIGH)
      { red_off();
        blue_off();
        green_off();
      }
      else 
    
    
      { delay (10000);
        red_off();
        blue_off();
        green_off();
      }
    }
    
    
    void red_on()
    {analogWrite(r1, 255);
    analogWrite(r2, 255);
    }
    
    
    
    
    void red_off()
    {analogWrite(r1, 0);
    analogWrite(r2, 0);
    }
    void green_on()
    {analogWrite(g1, 255);
    analogWrite(g2, 255);
    }
    
    
    
    
    void green_off()
    {analogWrite(g1, 0);
    analogWrite(g2, 0);
    }
    
    
    void blue_on()
    {analogWrite(b1, 255);
    analogWrite(b2, 255);
    }
    
    
    
    
    void blue_off()
    {analogWrite(b1, 0);
    analogWrite(b2, 0);
    }

    1 Not allowed! Not allowed!

  7. #7
    Νέο Μέλος
    Εγγραφή
    Sep 2014
    Μηνύματα
    3

    Προεπιλογή

    Για πολλά χρώματα και 'καθαρό' πρόγραμμα θα μπορούσες να φτιάξεις μια μέθοδο η οποία να δέχεται ως όρισμα μια λίστα int 3 αριθμών και να ορίζει κάθε output σύμφωνα με τους αριθμούς της λίστας. Την μέθοδο θα την καλείς όταν θέλεις να αλλάξεις χρώματα ανάλογα ποτέ θες κλπά κλπά.
    Ο λόγος της μεθόδου ειναι για να ειναι μικρότερος ο κώδικας και γιατί αποφεύγεται η χρήση ίδιου και σχεδόν παρόμοιου κώδικα στον προγραμματισμό.
    Κάθε λίστα αντιπρωσοπεύει ένα χρώμα (συνδιάσμό RGB) μπορείς να τις αρχικοποιήσεις και για παράδειγμα το κουμπί 1 θα στέλνει την λίστα [0,255,0] και θα ανάβει πράσινο ενώ το κουμπί 2 θα στέλνει [255,0,0] και θα ανάβει κόκκινο.
    Για delay, σχέδια και άλλα effect μπορείς να στήσεις πάλι μεθόδους στις οποίες επίσης θα στέλνεις τις απαραίτητες λίστες ανάλογα με το πως έχεις σχεδιάσει τα led να αναβοσβήνουν και η μέθοδος με την σειρά της θα κάνει τα delay ή ότι άλλο θες και θα καλεί την μέθοδο ορισμού χρώματος.
    Το uno δεν έχει και πολύ μνήμη και θα μπορείς έτσι να κερδίσεις χώρο για περισσότερα σχέδια led ή για περιπλοκότερο πρόγραμμα.

    *Για ακόμα μεγαλύτερο κέρδος θα μπορούσαν οι λίστες να ειναι byte ή uint8_t όπου οι μεταβλητές αυτές παίρνουν τιμές από 0 μέχρι 255 και σε καλύπτει απόλυτα. Έτσι θα ρίξεις στο 1/4 το μέγεθος που τρώνε οι λίστες.

    1 Not allowed! Not allowed!

  8. #8
    Μέλος
    Εγγραφή
    Apr 2008
    Περιοχή
    Πειράιας
    Μηνύματα
    33

    Προεπιλογή

    digelia,^Αctive^ και FireDiger σας ευχαριστω πολυ για τις απαντασεις σας... η αληθεια ειναι οτι ειχε καιρο καποιος να ποσταρει και ειχα αρχισει να απελπιζομαι οτι δεν θα εχω καποια βοηθεια!!!

    αγορασα το βιβλιο Αναπτυξη εφαρμογων με το Arduino και το παλευω σιγα σιγα και κομματι κομματι ...
    πριν καταληξω σε χρωμματα προσπαθω να του φτιαξω να ανοιγει μετα απο 10δευτερολεπτα μολις παρει ταση απο την μιζα,και να σβηνει μετα απο 30 δευτερολεπτα μολις χασει την ταση απο την μιζα(να μενουν δλδ ανοιχτα για 30 δευτερολεπτα...δλδ λειτουργεια follow me home που εχουν μερικα αμαξια!!!)

    μολις καταφερω αυτο θελω ενω ειναι σε λειτουγεια,μολις αναψω τα ψειρακια να πεσει η φωτηνωτητα στο 75% και μολις αναψω τα πορειας να πεσει στο 50%...

    πρως το παρων εχω φτιαξει αυτο...

    const int miza=2;
    const int r1=3;
    const int g1=5;
    const int b1=6;
    const int r2=9;
    const int g2=10;
    const int b2=11;
    const int mikra=7;
    const int mesaia=8;






    void setup() {
    pinMode(miza,INPUT);
    pinMode(r1,OUTPUT);
    pinMode(g1,OUTPUT);
    pinMode(b1,OUTPUT);
    pinMode(r2,OUTPUT);
    pinMode(g2,OUTPUT);
    pinMode(b2,OUTPUT);
    pinMode(mikra,INPUT);
    pinMode(mesaia,INPUT);
    }

    void loop(){

    int buttonState = digitalRead(miza);
    if (buttonState==HIGH)
    { fullPower ();
    }
    else
    {
    OFF();
    }
    }

    void fullPower ()
    {
    analogWrite(r1,255);
    analogWrite(g1,255);
    analogWrite(b1,255);
    analogWrite(r2,255);
    analogWrite(g2,255);
    analogWrite(b2,255);
    }

    void OFF ()
    {
    analogWrite(r1,0);
    analogWrite(g1,0);
    analogWrite(b1,0);
    analogWrite(r2,0);
    analogWrite(g2,0);
    analogWrite(b2,0);

    }

    void ebdomhntapentePower ()
    {
    analogWrite(r1,191);
    analogWrite(g1,191);
    analogWrite(b1,191);
    analogWrite(r2,191);
    analogWrite(g2,191);
    analogWrite(b2,191);

    }


    void misoPower ()
    {
    analogWrite(r1,122);
    analogWrite(g1,122);
    analogWrite(b1,122);
    analogWrite(r2,122);
    analogWrite(g2,122);
    analogWrite(b2,122);

    }

    αλλα μολις του βαζω delay μπερδευεται και θελω να το φτιαξω με millis...

    0 Not allowed! Not allowed!
    Άδραξε την μέρα....

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

  1. ARDUINO UNO CONTROLLER PELLET BURNER
    By nikolaras in forum Μικροελεγκτές
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 11-04-15, 22:53
  2. drl controller κατασκευή-τροποποίηση
    By nos7 in forum Κυκλώματα για Auto & Moto
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 29-03-14, 23:48
  3. Κατασκευή Arduino controller σε Breadboard
    By dikos in forum Μικροελεγκτές
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 16-03-13, 19:08
  4. Arduino Speed Controller
    By arnestis in forum Μικροελεγκτές
    Απαντήσεις: 6
    Τελευταίο Μήνυμα: 06-08-12, 15:00
  5. DIY DRL
    By marioulinos in forum Κυκλώματα για Auto & Moto
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 04-06-11, 18:56

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

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