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

Θέμα: εναλαγη rgb led

  1. #1
    Μέλος Το avatar του χρήστη Bobiras
    Όνομα
    Νίκος
    Εγγραφή
    Jul 2009
    Περιοχή
    αθήνα
    Μηνύματα
    349

    Προεπιλογή εναλαγη rgb led

    καλησπερα στη παρεα.
    θελω να φτιαξω ενα σχεδιο για να μπωρο να ελεγχο ενα rgb κοινης ανοδου βαση εισοδου.
    παραδειγμα: αν υπαρχει ταση στο πιν1 του arduino να αναβει το πρασινο, αν υπαρχει ταση και στο πιν2 να σβηνει το πρασινο και να αναβει το μπλε και αν υπαρχει ταση και στο πιν3 να σβηνουν τα υπολοιπα (πρασινο-μπλε) και να αναβει το κοκκινο.
    προσπαθησα να το φτιαξω αλλα οταν υπαρχει ταση μονο στο 1 απο τα 3 πιν εισοδου αναβει το εκαστοτε λεντ μια χαρα οταν εχουν ταση τα 2 πινς η και τα 3 πινς αναβουν και τα 3 χρωματα με αποτελεσμα να γινεται ενα χαμος απο χρωματα.

    Κώδικας:
    const int paroxh = 5;    
    const int prasino =  4;      
    const int antlia = 6;
    const int mple = 2;
    const int stathmi = 7;
    const int kokkino = 3;
    
    
    int paroxhState = 0;         
    int antliaState = 0;
    int stathmiState = 0;
    
    
    
    
    void setup() {
      
      pinMode(prasino, OUTPUT);  
      pinMode(paroxh, INPUT);
      pinMode(mple, OUTPUT);
      pinMode(antlia, INPUT);
      pinMode(kokkino, OUTPUT);
      pinMode(stathmi, INPUT);
      
    }
    
    
    void loop() {
      
      paroxhState = digitalRead(paroxh);
        
      if (paroxhState == HIGH) {    
        digitalWrite(prasino, LOW);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
        
      } else {   
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
      }
    
    
    
    
      antliaState = digitalRead(antlia);  
     
      if (antliaState == HIGH) {    
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, LOW);
        digitalWrite(kokkino, HIGH);
      } else {   
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
           
      }
    
    
    
    
      stathmiState = digitalRead(stathmi);
      
      if (stathmiState == HIGH) {        
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, LOW);
      } else {    
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
      }
      
    }

    0 Not allowed! Not allowed!

  2. #2
    Μέλος
    Όνομα
    Aνδρέας
    Εγγραφή
    Jan 2010
    Περιοχή
    Πάτρα
    Μηνύματα
    833

    Προεπιλογή

    σε 2 περιπτώσεις εσύ ο ίδιος έχεις βάλει να ανάβουν και τα 3 led

    Παράθεση Αρχικό μήνυμα από Bobiras Εμφάνιση μηνυμάτων
    καλησπερα στη παρεα.
    εχουν ταση τα 2 πινς η και τα 3 πινς αναβουν και τα 3 χρωματα με αποτελεσμα να γινεται ενα χαμος απο χρωματα.



    Κώδικας:
    παρακάτω όταν η αντλία είναι low,έχεις βάλει να ανάβουν και τα 3 led
      antliaState = digitalRead(antlia);  
     
      if (antliaState == HIGH) {    
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, LOW);
        digitalWrite(kokkino, HIGH);
      } else {   
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
           
      }
    
    παρακάτω όταν η stathmi είναι low,έχεις βάλει να ανάβουν και τα 3 led
    
    
      stathmiState = digitalRead(stathmi);
      
      if (stathmiState == HIGH) {        
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, LOW);
      } else {    
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
      }
      
    }

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη Bobiras
    Όνομα
    Νίκος
    Εγγραφή
    Jul 2009
    Περιοχή
    αθήνα
    Μηνύματα
    349

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από andreasmon Εμφάνιση μηνυμάτων
    σε 2 περιπτώσεις εσύ ο ίδιος έχεις βάλει να ανάβουν και τα 3 led
    Ειναι κοινης ανοδου το rgb και θελει HIGH για να μην αναβει και LOW για να αναψουν.

    0 Not allowed! Not allowed!

  4. #4
    Μέλος Το avatar του χρήστη her
    Όνομα
    Ηρακλής
    Εγγραφή
    Jun 2007
    Περιοχή
    Αργυρούπολη
    Μηνύματα
    1.121

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Bobiras Εμφάνιση μηνυμάτων
    καλησπερα στη παρεα.
    θελω να φτιαξω ενα σχεδιο για να μπωρο να ελεγχο ενα rgb κοινης ανοδου βαση εισοδου.
    παραδειγμα: αν υπαρχει ταση στο πιν1 του arduino να αναβει το πρασινο, αν υπαρχει ταση και στο πιν2 να σβηνει το πρασινο και να αναβει το μπλε και αν υπαρχει ταση και στο πιν3 να σβηνουν τα υπολοιπα (πρασινο-μπλε) και να αναβει το κοκκινο.
    προσπαθησα να το φτιαξω αλλα οταν υπαρχει ταση μονο στο 1 απο τα 3 πιν εισοδου αναβει το εκαστοτε λεντ μια χαρα οταν εχουν ταση τα 2 πινς η και τα 3 πινς αναβουν και τα 3 χρωματα με αποτελεσμα να γινεται ενα χαμος απο χρωματα.

    Κώδικας:
    const int paroxh = 5;    
    const int prasino =  4;      
    const int antlia = 6;
    const int mple = 2;
    const int stathmi = 7;
    const int kokkino = 3;
    
    
    int paroxhState = 0;         
    int antliaState = 0;
    int stathmiState = 0;
    
    
    
    
    void setup() {
      
      pinMode(prasino, OUTPUT);  
      pinMode(paroxh, INPUT);
      pinMode(mple, OUTPUT);
      pinMode(antlia, INPUT);
      pinMode(kokkino, OUTPUT);
      pinMode(stathmi, INPUT);
      
    }
    
    
    void loop() {
      
      paroxhState = digitalRead(paroxh);
        
      if (paroxhState == HIGH) {    
        digitalWrite(prasino, LOW);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
        
      } else {   
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
      }
    
    
    
    
      antliaState = digitalRead(antlia);  
     
      if (antliaState == HIGH) {    
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, LOW);
        digitalWrite(kokkino, HIGH);
      } else {   
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
           
      }
    
    
    
    
      stathmiState = digitalRead(stathmi);
      
      if (stathmiState == HIGH) {        
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, LOW);
      } else {    
        digitalWrite(prasino, HIGH);
        digitalWrite(mple, HIGH);
        digitalWrite(kokkino, HIGH);
      }
      
    }

    Θα πρέπει να μεριμνησεις για τι περίπτωση που έχεις τάση στα pin. Δηλαδή μάλλον θα πρέπει να γράψεις ότι αν δεν υπάρχει τάση στο pin 1 και ταυτόχρονα δεν υπάρχει τάση στο pin 2 και ταυτόχρονα υπάρχει τάση στο άλλο τότε κάνε αυτό.

    Π.χ if (paroxhState == HIGH && antliaState == HIGH && stathmiState == LOW ) {

    0 Not allowed! Not allowed!

  5. #5
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    607

    Προεπιλογή

    Αν και στα 3 πιν έχεις έχεις τάση τότε εκτελείτε ο κώδικας και στα 3 if. Και επειδή εκτελείτε πολύ γρήγορα τα led φαίνονται αναμένα.
    Μια γρήγορη λύση θα είναι να φωλιάσεις τα 3 if για να αποφύγεις να ελεγθεί κάτι όταν δεν χρειάζετε...
    σκέψου τοσε απλά ελληνικά και μετά φτιάξε τον κώδικα:
    πχ

    Κώδικας:
    αν εχω τάση στο 3 τοτε άναψε το χχ χρώμα και σβύσε τα υπόλοιπα,
        διαφορετικά αν έχω τάση στο 2 τοτε άναψε το ψψ χρώμα και σβύσε τα υπόλοιπα,
           διαφορετικά αν έχω τάση στο 1 τότε άναψε το ζζ χρώμα και σβύσε τα υπόλοιπα...
    Ξεκινάς πάντα απο αυτό που έχει μεγαλύτερη σημασία...

    0 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  6. #6
    Μέλος Το avatar του χρήστη Kernel Panic
    Όνομα
    Kernel Panic
    Εγγραφή
    Aug 2016
    Περιοχή
    Αθήνα
    Μηνύματα
    430

    Προεπιλογή

    Αν και παλιό, ρίξε μια ανάγνωση εδώ -> Προγραμματίζοντας με τον μικροελεγκτή Arduino
    Θα σε βοηθήσει να το κάνεις μόνος σου.

    0 Not allowed! Not allowed!

  7. Ένα μέλος ευχαρίστησε τον Kernel Panic για αυτό το χρήσιμο μήνυμα:

    awmn931 (15-02-21)

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

  1. Απαντήσεις: 10
    Τελευταίο Μήνυμα: 04-12-18, 22:34
  2. rgb led
    By sakisdid in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 24-04-18, 21:09
  3. Rgb led 12v
    By thanoulis in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 29-11-14, 19:24
  4. Απαντήσεις: 6
    Τελευταίο Μήνυμα: 21-11-14, 19:24
  5. flexible led RGB
    By ts0gl1s in forum Γενική Συζήτηση
    Απαντήσεις: 10
    Τελευταίο Μήνυμα: 08-06-12, 00:15

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

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