Arduino pomoc
Zdravím dělám takovou blbost a potřeboval bych v arduinu udělat funkci pro hromadné ovládání pinů , ted volám přeba LED1 a pod , ale potřeboval bych volat najednou třeba piny 1, 6 ,12 pod jedním názvem , nebo všechny led najednou -.led-all
předem dík
packa
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;
int led10 = 10;
int led11 = 11;
int led12 = 12;
int led13 = 13;
int led-all ---------?????
předem dík
packa
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;
int led10 = 10;
int led11 = 11;
int led12 = 12;
int led13 = 13;
int led-all ---------?????
Já teda Arduino neznám a ani znát nechci a nebudu.
Myslím to vývojové prostředí Arduino, ty destičky jsou naopak docela fajn.
Předpokládám, že ty LEDky máš prostě pověšené na jednotlivé piny nějakého výstupního portu.
Tak snad není problém poslat obsah celého portu najednou, ne?
Něco jako:
#define LED1 0x01
#define LED2 0x02
#define LED3 0x04
...
#define LED6 0x20
#define SKUPINA1 (LED1 | LED2 | LED6)
#define SKUPINA2 (LED1 | LED5)
No a pak buď rozsvítíš nebo zhasneš jednu LED:
PORT |= LED1
PORT &= ~LED1
Nebo celou skupinu:
PORT |= SKUPINA1
PORT &= ~SKUPINA1
Nevím, jak se v Arduinu zapisuje na porty, ale nějak takhle to snad taky jde (tedy tak, jak se to dělá ve všech ostatních vývojových prostředích).
Myslím to vývojové prostředí Arduino, ty destičky jsou naopak docela fajn.
Předpokládám, že ty LEDky máš prostě pověšené na jednotlivé piny nějakého výstupního portu.
Tak snad není problém poslat obsah celého portu najednou, ne?
Něco jako:
#define LED1 0x01
#define LED2 0x02
#define LED3 0x04
...
#define LED6 0x20
#define SKUPINA1 (LED1 | LED2 | LED6)
#define SKUPINA2 (LED1 | LED5)
No a pak buď rozsvítíš nebo zhasneš jednu LED:
PORT |= LED1
PORT &= ~LED1
Nebo celou skupinu:
PORT |= SKUPINA1
PORT &= ~SKUPINA1
Nevím, jak se v Arduinu zapisuje na porty, ale nějak takhle to snad taky jde (tedy tak, jak se to dělá ve všech ostatních vývojových prostředích).
to co poslal Mex musí fungovat, jen ty budeš muset definovat adresy podle zařízení, ale Arduino, jsem na tom jak Mex
Něco jako:
#define LED1 ... adresa portu
#define LED2 ... adresa portu
#define LED3 ... adresa portu
tohle by ti mohlo pomoci http://www.arduino.cc/en/Reference/PortManipulation" onclick="window.open(this.href);return false;

Něco jako:
#define LED1 ... adresa portu
#define LED2 ... adresa portu
#define LED3 ... adresa portu
tohle by ti mohlo pomoci http://www.arduino.cc/en/Reference/PortManipulation" onclick="window.open(this.href);return false;
takhle jsem to napsal a nejede : samozřejmě když volám jednotlivé led tak je vše ok
#define LED1 1
#define LED2 2
#define LED3 3
#define LED4 4
#define SKUPINA1 (LED1 | LED2 |LED3)
#define SKUPINA2 (LED3 | LED4)
#define PRODLEVA 500
void setup()
{
pinMode(1, OUTPUT); // nastaveni pinu 1 jako vystup
pinMode(2, OUTPUT); // nastaveni pinu 2 jako vystup
pinMode(3, OUTPUT); // nastaveni pinu 3 jako vystup
pinMode(4, OUTPUT); // nastaveni pinu 4 jako vystup
pinMode(5, OUTPUT); // nastaveni pinu 5 jako vystup
}
void loop(){
digitalWrite(SKUPINA1, HIGH);
delay(PRODLEVA);
digitalWrite(SKUPINA1, LOW);
delay(PRODLEVA);
digitalWrite(SKUPINA2, HIGH);
delay(PRODLEVA);
digitalWrite(SKUPINA2, LOW);
}
#define LED1 1
#define LED2 2
#define LED3 3
#define LED4 4
#define SKUPINA1 (LED1 | LED2 |LED3)
#define SKUPINA2 (LED3 | LED4)
#define PRODLEVA 500
void setup()
{
pinMode(1, OUTPUT); // nastaveni pinu 1 jako vystup
pinMode(2, OUTPUT); // nastaveni pinu 2 jako vystup
pinMode(3, OUTPUT); // nastaveni pinu 3 jako vystup
pinMode(4, OUTPUT); // nastaveni pinu 4 jako vystup
pinMode(5, OUTPUT); // nastaveni pinu 5 jako vystup
}
void loop(){
digitalWrite(SKUPINA1, HIGH);
delay(PRODLEVA);
digitalWrite(SKUPINA1, LOW);
delay(PRODLEVA);
digitalWrite(SKUPINA2, HIGH);
delay(PRODLEVA);
digitalWrite(SKUPINA2, LOW);
}
Tady je to pěkně popsané
http://www.arduino.cc/en/Reference/PortManipulation" onclick="window.open(this.href);return false;
http://www.arduino.cc/en/Reference/PortManipulation" onclick="window.open(this.href);return false;
XpertMill, Gravos, Ninos, Galaad
IQ156
-1500Kč, -520Kč, -1čokoláda, - 28000Kč
www.freeair.cz www.rotexelectric.eu www.retrofitcnc.cz
IQ156
-1500Kč, -520Kč, -1čokoláda, - 28000Kč
www.freeair.cz www.rotexelectric.eu www.retrofitcnc.cz
Přečti si to PDF, co poslal Hades.
Je to tam přesně popsané na pár řádcích i s příkladem, který se přesně hodí pro tebe.
Pokud bys měl ty LEDky třeba na portu D, tak rozsvícení:
PORTD |= SKUPINA1;
zhasnutí:
PORTD &= ~SKUPINA1;
Platí v případě, kdy LED svítí při log. H, tj. pokud jsou zapojené proti GND.
Pokud jsou proti plusu, tak je samozřejmě rozsvicení a zhasnutí naopak.
Je to tam přesně popsané na pár řádcích i s příkladem, který se přesně hodí pro tebe.
Pokud bys měl ty LEDky třeba na portu D, tak rozsvícení:
PORTD |= SKUPINA1;
zhasnutí:
PORTD &= ~SKUPINA1;
Platí v případě, kdy LED svítí při log. H, tj. pokud jsou zapojené proti GND.
Pokud jsou proti plusu, tak je samozřejmě rozsvicení a zhasnutí naopak.
Podle toho můžeš jak hromadně definovat vstupy ,výstupy tak i jejich stav, používal jsem to řízení bldc motoru kde to muselo být fakt rychlé.
XpertMill, Gravos, Ninos, Galaad
IQ156
-1500Kč, -520Kč, -1čokoláda, - 28000Kč
www.freeair.cz www.rotexelectric.eu www.retrofitcnc.cz
IQ156
-1500Kč, -520Kč, -1čokoláda, - 28000Kč
www.freeair.cz www.rotexelectric.eu www.retrofitcnc.cz
nastaveni skupiny, pokud to nenecházíš...packa píše:takhle jsem to napsal a nejede : samozřejmě když volám jednotlivé led tak je vše ok
#define LED1 1
#define LED2 2
#define LED3 3
#define LED4 4
#define SKUPINA1 (LED1 | LED2 |LED3)
#define SKUPINA2 (LED3 | LED4)
#define PRODLEVA 500
PORTD = B10101000; // sets digital pins 7,5,3 HIGH