2 programy v Arduine

Sekcia určená pre Arduino nadšencov

Moderátor: Moderátori

MartinSzabo1997
Okoloidúci
Okoloidúci
Príspevky: 14
Dátum registrácie: 15 Okt 2013, 22:17

2 programy v Arduine

Príspevok od používateľa MartinSzabo1997 » 24 Nov 2013, 20:45

Zdravim potrebujem poradit.. Chcem dat do arduina 2 rozne programy.. jeden mi bude zopinat rele a druhy bude vnimat pohybovy senzor a potom zapne kontrolku. Problem je ten ze neviem ako ich mam zlucit do jedneho alebo v akom poradi alebo ako ich tam napisat :( dakujem za pomoc.
0

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: 2 programy v Arduine

Príspevok od používateľa xmilos » 24 Nov 2013, 20:58

na zaciatku si otestuj polohu jedneho pinu a podla toho skoc na jeden, alebo druhy program. Ten pin sa pouzije ako prepinac funkcii.
0

MartinSzabo1997
Okoloidúci
Okoloidúci
Príspevky: 14
Dátum registrácie: 15 Okt 2013, 22:17

Re: 2 programy v Arduine

Príspevok od používateľa MartinSzabo1997 » 24 Nov 2013, 21:06

neviem ako myslis... ja potrebujem tento program:
int LEDka = 10;
int TLAC = 9;
boolean svetlo = false;


void setup()
{
pinMode(LEDka, OUTPUT);
pinMode(TLAC, INPUT);

}
void loop()
{

if (digitalRead(TLAC))
{

if (svetlo) svetlo = false; else svetlo = true;

digitalWrite(LEDka, svetlo);

while (digitalRead(TLAC)) delay(50);
}
}
a tento program:
int ledPin = 13;
int inputPin = 2;
int pirState = LOW;
int val = 0;
int pinSpeaker = 10;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(inputPin, INPUT);
pinMode(pinSpeaker, OUTPUT);
Serial.begin(9600);
}

void loop(){
val = digitalRead(inputPin);
if (val == HIGH) {
digitalWrite(ledPin, HIGH);
playTone(300, 160);
delay(150);


if (pirState == LOW) {

Serial.println("Motion detected!");

pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW);
playTone(0, 0);
delay(300);
if (pirState == HIGH){

Serial.println("Motion ended!");

pirState = LOW;
}
}
}

void playTone(long duration, int freq) {
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(pinSpeaker,HIGH);
delayMicroseconds(period / 2);
digitalWrite(pinSpeaker, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
}
tieto programy chcem dat do jedneho a aby boli nezavysle na sebe..
0

110mat110
Stály člen
Stály člen
Príspevky: 226
Dátum registrácie: 06 Feb 2013, 19:55
Bydlisko: Kosice a este trochu dalej
Vek: 28

Re: 2 programy v Arduine

Príspevok od používateľa 110mat110 » 24 Nov 2013, 21:25

chces, aby tie programy behali spolocne? Alebo zeby kazdy z nich bezal po nejakej akcii alebo ako?
0

MartinSzabo1997
Okoloidúci
Okoloidúci
Príspevky: 14
Dátum registrácie: 15 Okt 2013, 22:17

Re: 2 programy v Arduine

Príspevok od používateľa MartinSzabo1997 » 24 Nov 2013, 21:26

spolocne
0

110mat110
Stály člen
Stály člen
Príspevky: 226
Dátum registrácie: 06 Feb 2013, 19:55
Bydlisko: Kosice a este trochu dalej
Vek: 28

Re: 2 programy v Arduine

Príspevok od používateľa 110mat110 » 25 Nov 2013, 20:31

Asi najjednoduhsie ich bude napisat za sebou ako su teraz. Avsak, dopadne to tak, ze najprv zbehne prvy, potom druhy. Je vcelku mozne, ze while sa ti zacykli a ostanes v tom prvom.
Potom je moznost, ich upravit tak, aby sa nedokazali zacyklit. Potom ich jednoducho pustis za sebou a cyklus nastavis obom naraz
Tretia moznost je, zacat od zaciatku a uplne to prerobit do jedneho programu.
0

Používateľov profilový obrázok
zen
Stály člen
Stály člen
Príspevky: 484
Dátum registrácie: 22 Nov 2013, 14:33
Bydlisko: Cadca

Re: 2 programy v Arduine

Príspevok od používateľa zen » 26 Nov 2013, 21:10

Arduino som si objednal, az prijde, zacnem nechat blikat LED na pin 13.

Hadam, ze na Arduino dva programy _spolecne_ behat nebudu, musi sa to simulovat, najlahsie asi takto.

Kód: Vybrať všetko

void loop() {
  int x=1
  boolean pokracuj=true
  while (x<999 .and. pokracuj) {
    x+=1
    {program 1}
  }
  x=1
  pokracuj=true
  while (x<999 .and. pokracuj) {
    x+=1
    {program 2}
  }
}
0
Samozřejmě, že dědeček nemá kapesní hodinky poháněné elektřinou. Takový nesmysl si může vymyslit jen Saturnin. (Zdenek Jirotka, 1942)

MartinSzabo1997
Okoloidúci
Okoloidúci
Príspevky: 14
Dátum registrácie: 15 Okt 2013, 22:17

Re: 2 programy v Arduine

Príspevok od používateľa MartinSzabo1997 » 30 Nov 2013, 11:45

a ešte mam jeden problem.. chcem ovladat 5 led s 5 spinacmi.. ale tak ze Led1 bude ovladana Spinacom1, Led2 bude ovladana Spinacom2 atd. a chcem aby sa to dalo tak ze hocikedy si mozem zapnut aleboo vypnut hocijaku led... tento program by som tam chcel pouzit:
int LEDka = 13; // LED připojena na pin 10
int TLAC = 7; // Tlacitko pripojeno na pin 9
boolean svetlo = false; // Pomocná hodnota světlo


void setup()
{
pinMode(LEDka, OUTPUT); // pin 10 nastaven jako výstup
pinMode(TLAC, INPUT_PULLUP); // pin 9 nastaven jako vstup

}
void loop()
{
// když je hodnota na tlačítku vysoká (true)
if (digitalRead(TLAC))
{
//když je světlo, udělej tmu a naopak
if (svetlo) svetlo = false; else svetlo = true;
//zapiš hodnotu světla na výstup
digitalWrite(LEDka, svetlo);
//dokud je tlačítko sepnuté čekej 50ms
while (digitalRead(TLAC)) delay(50);
}
}

ide mi o to, ze s tym programom si budem moct zopinat rele a vypinat rele... ale tak ze ked chcem si zapnut 3. rele tak si zapnem a potom ked si chcem zapnut 1. rele zapnem a hocikedy mozem zapnut/vypnut hocijake rele bezohladu na poradi...
0

Napísať odpoveď