• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
LED Dimmer Soft Start Stop
#1
Witam was a zarazem proszę o pomoc w napisaniu kodu który będzie realizował Soft start i Soft Stop świecenia diody.

Dioda ma być sterowana pojawieniem się napięcia na jednym z pinów a  i wtedy ma być soft start a po zaniku napięcia soft stop.

cos jak na filmie:
https://www.youtube.com/watch?v=6FbA9FvolKo&spfreload=5
 
Odpowiedź
#2
Dodgy Oj lenistwo wysokich lotów

Kod:
byte state = 0;

void setup() {

Serial.begin(9600);
pinMode(9,OUTPUT);
pinMode(2,INPUT);

}

void loop() {

if ( digitalRead(2) == LOW and state == 0){
for (int x=0;x<255;x++){
     analogWrite(9,x);
     delay(2);
     Serial.println(x);}
     state = 1;
    }

    
if ( digitalRead(2) == HIGH and state == 1 ){
    for (int x=255;x>=0;x--){
     analogWrite(9,x);
     delay(2);
     Serial.println(x);}
     state = 0;
     }
}
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#3
(09-12-2016, 23:41)JasQ napisał(a): Dodgy Oj lenistwo wysokich lotów

Kod:
byte state = 0;

void setup() {

Serial.begin(9600);
pinMode(9,OUTPUT);
pinMode(2,INPUT);

}

void loop() {

if ( digitalRead(2) == LOW and state == 0){
for (int x=0;x<255;x++){
    analogWrite(9,x);
    delay(2);
    Serial.println(x);}
    state = 1;
   }

   
if ( digitalRead(2) == HIGH and state == 1 ){
   for (int x=255;x>=0;x--){
    analogWrite(9,x);
    delay(2);
    Serial.println(x);}
    state = 0;
    }
}
Dziekuję,

Nawet nie lenistwo tylko brak wiedzy a zarazem chęć wykonanie czegoś  Tongue

Nieśmiało jednak powiem że kod nie do końca działa. Tzn. po złożeniu układu na 123circuits.io i podaniu na przycisk 5V i jego naciśnięciu dioda rozjaśnia się. Jednak ponowne naciśniecie nie wygasza diody.
 
Odpowiedź
#4
W kodzie masz 2 wystąpienia "and", zastąp je operatorem logicznym " &&"


edit:
dla przycisku monostabilnego w pierwszym "if" też powinno być "if ( digitalRead(2) == HIGH....."
 
Odpowiedź
#5
(11-12-2016, 22:28)SQ4KDG napisał(a): W kodzie masz 2 wystąpienia "and", zastąp je operatorem logicznym " &&"

Nic z tego...
 
Odpowiedź
#6
I nie ma tak działać pisałeś że jak pojawi się napięcie ma się zapalić a jak zniknie ma zgasnąć . Jakbyś napisał że ma być przycisk do bym taki kod napisał . Musisz dać między pin przycisku a masę opornik 10kohm jak dasz 5v na pin to się zapali a jak zdejmiesz napięcie zgaśnie.

tu masz kod pod przycisk między masę a pin2 bez opornika

Kod:
byte state = 0;

void setup() {

Serial.begin(9600);
pinMode(9,OUTPUT);
pinMode(2,INPUT_PULLUP);

}

void loop() {

if ( digitalRead(2) == LOW and state == 0){
    for (int x=0;x<255;x++){
     analogWrite(9,x);
     delay(2);
     Serial.println(x);}
     state = 1;
    }

    
if ( digitalRead(2) == LOW and state == 1 ){
    for (int x=255;x>=0;x--){
     analogWrite(9,x);
     delay(2);
     Serial.println(x);}
     state = 0;
     }
}
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#7
dziekuję i przepraszam za zamieszanie. Wszytko działa jak należy
 
Odpowiedź
#8
Witam Mam prośbę. Może dla kogoś nie było by dużym problemem rozbudować program o dodatkowe diody działające niezależnie? 
Tzn np 4 wejścia sterują przyporządkowanymi sobie wyjściami w sposób jak wyżej.

Jestem początkującym, z góry dziękuję.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości