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
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;
}
}
(09-12-2016, 23:41)JasQ napisał(a): [ -> ] 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ś
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.
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....."
(11-12-2016, 22:28)SQ4KDG napisał(a): [ -> ]W kodzie masz 2 wystąpienia "and", zastąp je operatorem logicznym " &&"
Nic z tego...
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;
}
}
dziekuję i przepraszam za zamieszanie. Wszytko działa jak należy
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ę.