Arduino Polska Forum

Pełna wersja: Sygnał losowy
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam , chciałbym się dowiedzieć czy jest mozlwosc zaprogramowania tak arduino tak aby sygnał był rozsyłany do kilku odbiorników losowo. O co mi chodzi, o to aby była mozliwosci w odstępach czasowych wysyłać pojedynczy sygnał np. do silników. Mam taki plan , jako jestem bramkarzem piłki recznej aby, takie cos podłaczyc pod pewnego rodzaju wyrzutnie piłek tenisowych na róznych wysokosciach i w taki sposób cwiczyc refleks. Jeżeli miałby ktos jakis pomysł z góry Dziekuję
Tak, arduino może to zrobić. Są odpowiednie funkcje.
(04-12-2016, 21:35)namok napisał(a): [ -> ]Tak, arduino może to zrobić. Są odpowiednie funkcje.

A moglbys bardziej sprecyzowac to, bo w internecie szperałem a, tak naprawde konkretnej odpowiedzi nie znalazłem.
Zerknij tutaj.
(05-12-2016, 18:49)krn78 napisał(a): [ -> ]Zerknij tutaj.
Nie wiem czy napewno doczytałem, ale nie znalazłem jak ustawic odstepy czasowe miedzy sygnalami
Ot i cały ci potrzebny program piny jakie potrzebujesz możesz dowolnie w klamerce zmienić

Kod:
byte opoznienie = 3;
byte czas_zadzialania = 1;
byte ktory_pin[7]={2,3,4,5,6,7,8};
byte x = 0;

void setup() {
  
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);

}

void loop() {
  
x = random(0,6);
digitalWrite(ktory_pin[x],HIGH);
delay(1000*czas_zadzialania);
digitalWrite(ktory_pin[x],LOW);
delay(1000*opoznienie);

}
(05-12-2016, 20:29)JasQ napisał(a): [ -> ]Ot i cały ci potrzebny program piny jakie potrzebujesz możesz dowolnie w klamerce zmienić

Kod:
byte opoznienie = 3;
byte czas_zadzialania = 1;
byte ktory_pin[7]={2,3,4,5,6,7,8};
byte x = 0;

void setup() {
 
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);

}

void loop() {
 
x = random(0,6);
digitalWrite(ktory_pin[x],HIGH);
delay(1000*czas_zadzialania);
digitalWrite(ktory_pin[x],LOW);
delay(1000*opoznienie);

}

Chciałbyś może Mi napisać owy program , nie ukrywam jestem w trakcie nauki i analiza zajmie mi sporo czasu. Pewnie w Twoim przypadku zajmie Ci to maksymalnie 2 min.Mam już podłączone piny od 2-10 outputy i chce aby był sygnał co 4 sekundy "losowany". Dałbyś rade Big Grin
piny od 2 do 10 czas co 4 sek na 1 sek

Kod:
byte opoznienie = 4;
byte czas_zadzialania = 1;
byte ktory_pin[]={2,3,4,5,6,7,8,9,10};
byte x = 0;

void setup() {

pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);

}

void loop() {
  
x = random(0,9);
digitalWrite(ktory_pin[x],HIGH);
delay(1000*czas_zadzialania);
digitalWrite(ktory_pin[x],LOW);
delay(1000*opoznienie);

}
(05-12-2016, 22:06)JasQ napisał(a): [ -> ]piny od 2 do 10 czas co 4 sek na 1 sek

Kod:
byte opoznienie = 4;
byte czas_zadzialania = 1;
byte ktory_pin[]={2,3,4,5,6,7,8,9,10};
byte x = 0;

void setup() {

pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);

}

void loop() {
 
x = random(0,9);
digitalWrite(ktory_pin[x],HIGH);
delay(1000*czas_zadzialania);
digitalWrite(ktory_pin[x],LOW);
delay(1000*opoznienie);

}

Ogromne DZIĘKI oto własnie chodziło
Zamykam. Smile