arduino nano COM port
Moderátor: Moderátori
arduino nano COM port
nazdar potrebujem poradiť ohľadom programu na arduino
mám v arduine nahratý program ktorý nastaví určené pini ako zapnuté
a chcem niektorý pin vypnúť cez COM port v arduino programe ale neviem čo tam napísať aby sa pin vypol
program :
char value;
int up = 4;
int down = 9;
int led = 6;
void setup()
{
pinMode(up, OUTPUT);
pinMode(down, OUTPUT);
pinMode(led, OUTPUT);
digitalWrite(up, HIGH);
digitalWrite(down, HIGH);
digitalWrite(led, HIGH);
Serial.begin(9600);
}
void loop()
{
if( Serial.available() )
{;}
value = Serial.read();
if( value == '0' )
{
digitalWrite(up, LOW);
}
if( value == '1' )
{
digitalWrite(up, HIGH);
}
if( value == '2' )
{
digitalWrite(down, LOW);
}
if( value == '3' )
{
digitalWrite(down, HIGH);
}
if( value == '4' )
{
digitalWrite(led, LOW);
}
if( value == '5' )
{
digitalWrite(led, HIGH);
}
}
vopred ďakujem za pomoc
! Téma presunutá do správnej sekcie. presunul: 28.3.2018 mirosne !
mám v arduine nahratý program ktorý nastaví určené pini ako zapnuté
a chcem niektorý pin vypnúť cez COM port v arduino programe ale neviem čo tam napísať aby sa pin vypol
program :
char value;
int up = 4;
int down = 9;
int led = 6;
void setup()
{
pinMode(up, OUTPUT);
pinMode(down, OUTPUT);
pinMode(led, OUTPUT);
digitalWrite(up, HIGH);
digitalWrite(down, HIGH);
digitalWrite(led, HIGH);
Serial.begin(9600);
}
void loop()
{
if( Serial.available() )
{;}
value = Serial.read();
if( value == '0' )
{
digitalWrite(up, LOW);
}
if( value == '1' )
{
digitalWrite(up, HIGH);
}
if( value == '2' )
{
digitalWrite(down, LOW);
}
if( value == '3' )
{
digitalWrite(down, HIGH);
}
if( value == '4' )
{
digitalWrite(led, LOW);
}
if( value == '5' )
{
digitalWrite(led, HIGH);
}
}
vopred ďakujem za pomoc
! Téma presunutá do správnej sekcie. presunul: 28.3.2018 mirosne !
0
- jirka.jirka.
- Ultimate člen
- Príspevky: 1537
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: arduino nano COM port
Nastav pin jako vstupní a zapni mu pullup, pokud je to možné.
Pokud je mi známo, všechny GPIO na AVR po inicializaci jsou standardně vysoké vstupní impedanci (to odpovídá registru DDRx = 0)
PS: Program vlož do CODE:
Dál toto se mi moc nelíbí.
Když už, tak bych to upravil pomocí #define
Pokud je mi známo, všechny GPIO na AVR po inicializaci jsou standardně vysoké vstupní impedanci (to odpovídá registru DDRx = 0)
PS: Program vlož do CODE:
Kód: Vybrať všetko
Kód v tomto je čitelnější.
Kód: Vybrať všetko
int up = 4;
int down = 9;
int led = 6;
void setup()
{
pinMode(up, OUTPUT);
pinMode(down, OUTPUT);
pinMode(led, OUTPUT);
digitalWrite(up, HIGH);
digitalWrite(down, HIGH);
digitalWrite(led, HIGH);
Serial.begin(9600);
}
Kód: Vybrať všetko
#define UP 4;
#define DOWN 9;
#define LED 6;
void setup()
{
pinMode(UP, OUTPUT);
pinMode(DOWN, OUTPUT);
pinMode(LED, OUTPUT);
digitalWrite(UP, HIGH);
digitalWrite(DOWN, HIGH);
digitalWrite(LED, HIGH);
Serial.begin(9600);
}
0
-
- Ultimate člen
- Príspevky: 3963
- Dátum registrácie: 04 Feb 2013, 22:04
- Bydlisko: U alibabky v Poprade
- Vek: 32
Re: arduino nano COM port
if( Serial.available() )
{;}
value = Serial.read();
Toto je OK? Nie som prave cez arduino, ale takyto zapis mi nie je po chuti
{;}
value = Serial.read();
Toto je OK? Nie som prave cez arduino, ale takyto zapis mi nie je po chuti
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.
Re: arduino nano COM port
odoslanim "1" z klavesnice zapnes pin 4, vypnes ho nulou atd vid. tabulka
problemy v programe neriesim, presne to co si dal asi nemas napalene v tom arduine
odkial mas program , co presne chces robit?
problemy v programe neriesim, presne to co si dal asi nemas napalene v tom arduine
odkial mas program , co presne chces robit?
0
- jirka.jirka.
- Ultimate člen
- Príspevky: 1537
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: arduino nano COM port
No, 3 sekundu google a ono ejhle:
Tak a tento program by mel delat to, ze kdyz odeslel 0 dioda zhasne. Odesles 1 a dioda se rozne.
Snad jsem to nepopletl, ale s ARDUINO jsem nikdy nepracoval.
Zkus rozjet to co jsem ti poslal, pak se posuneme dál.
PS: Kód vkládej do bloků [ code]tvé řádky programu[ /code] a vynechej mezery.
Tak a tento program by mel delat to, ze kdyz odeslel 0 dioda zhasne. Odesles 1 a dioda se rozne.
Kód: Vybrať všetko
if (Serial.available() > 0) /*kontrola, zdalipak jsme neco prijalo*/
{
value = Serial.read(); /*Co jsem odeslal z PC zpracuju*/
if( value == '0' )
{
digitalWrite(LED, LOW); /*zhasnu LED*/
Serial.println("Prijal jsem nulu"); /*informativni vysup na uart*/
}
if( value == '1' )
{
digitalWrite(LED, HIGH); /*Roznu LED*/
Serial.println("Prijal jsem jednicku"); /*informativni vysup na uart*/
}
}
Zkus rozjet to co jsem ti poslal, pak se posuneme dál.
PS: Kód vkládej do bloků [ code]tvé řádky programu[ /code] a vynechej mezery.
0
Re: arduino nano COM port
Prizivim sa v teme, ked mam na arduino nano lubovolny pin nastaveny ako vstupny, zvladne tento pin 12V?
0
nemam vyjadrovanie ako elektrotechnik, do elektrotechniky sa velmi nevyznam no chcem sa nieco nove naucit - som samouk
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: arduino nano COM port
nie, su tam clamp diody pripojené na VCC a GND. T.j. ochrana proti vyššiemu napätiu ako je VCC a proti zápornému.
-- Spojený príspevok 28 Mar 2018, 17:13 --
Inak nevidím dôvod prečo by ten program na začiatku nemal fungovať ak keď je tam toto:
Čo je úplná zbytočnosť ale syntakticky správna, pravdepodobne kompilátorom ignorovaná. Ako to má byť správne sa tu už objavilo, ale v kóde žiadny problém nieje.
Serial.read vráti -1 ak nie je čo prečítať. Takže sa nič zlého nestane.
-- Spojený príspevok 28 Mar 2018, 17:13 --
Inak nevidím dôvod prečo by ten program na začiatku nemal fungovať ak keď je tam toto:
Kód: Vybrať všetko
if( Serial.available() )
{;}
Serial.read vráti -1 ak nie je čo prečítať. Takže sa nič zlého nestane.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
- jirka.jirka.
- Ultimate člen
- Príspevky: 1537
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: arduino nano COM port
Ano nic se nestane, kompilátor to přejde úplně v pohodě. syntakticky je to CAJK. Ale proč ty data nezpracovat pouze tehdy, když jsou k dispozici?
Ušetří se nějaký čas a procesor mezitím může louskat něco jiného.
Jinak nevím nevím, ale pokud tu proměnnou value nesmaže po vykonání toho kódu, tak se bude provádět do aleluja. Kdežto když se to provede v části
Tak se provede jen jednou a znova až po přijmutí dat.
Ušetří se nějaký čas a procesor mezitím může louskat něco jiného.
Jinak nevím nevím, ale pokud tu proměnnou value nesmaže po vykonání toho kódu, tak se bude provádět do aleluja. Kdežto když se to provede v části
Kód: Vybrať všetko
if (Serial.available() > 0) /*kontrola, zdalipak jsme neco prijalo*/
{}
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: arduino nano COM port
Nič proti tomu že je to postavené celé na hlavu. Ale kedže autor otázky o programovaní nič nevie tak to nemá cenu riešiť. Ja som chcel tým povedať len to, že ten kód aj keď je napísaný zle tak zapínať a vypínať LEDky by mal. A ak to nerobí tak chyba bude niekde inde, ale nie v prezentovanom kóde. Môže to byť zle zapojené, môže mať zle nastavenú Fosc a potom má zlú baudovú rýchlosť.
Predpokladám že také niečo ako si poslať znak späť aby vedel či mu vôbec funguje sériová komunikácia ho nenapadlo.
Toto je opäť jeden z prístupov typu: Kúpil som si Cesnu, natankoval som ju, posunul som plynovú páku na max a ono to nechce letieť - poradte čo mám robiť. Inak bežne lietam Boeingom v prvej triede.
Predpokladám že také niečo ako si poslať znak späť aby vedel či mu vôbec funguje sériová komunikácia ho nenapadlo.
Toto je opäť jeden z prístupov typu: Kúpil som si Cesnu, natankoval som ju, posunul som plynovú páku na max a ono to nechce letieť - poradte čo mám robiť. Inak bežne lietam Boeingom v prvej triede.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
-
- Okoloidúci
- Príspevky: 15
- Dátum registrácie: 09 Feb 2017, 19:53
- Bydlisko: Slovenska Republika
- Vek: 39
- Kontaktovať používateľa:
Re: arduino nano COM port
Sice neskora odpoveď ale....
Môžeš použiť funkciu switch
Pozri aj ascii tabulka
Ak pošleš s terminálu a -v ascii a zodpovedá dec hodnota 95, takže ak chceš ledku zapnúť poslaním 1 s terminálu musíš za case dať dec hodnotu zodpovedajúcu 1 podľa ascii a to je 49
Môžeš použiť funkciu switch
Pozri aj ascii tabulka
Ak pošleš s terminálu a -v ascii a zodpovedá dec hodnota 95, takže ak chceš ledku zapnúť poslaním 1 s terminálu musíš za case dať dec hodnotu zodpovedajúcu 1 podľa ascii a to je 49
Kód: Vybrať všetko
void loop(){
if(Serial.available() > 0 ){
// Serial.println(serial_read,DEC);
switch (Serial.read()) {
case 97:
funkcia1();
Serial.println("a");
break;
case 98:
funkcia2();
Serial.println("b");
break;
case 99:
funkcia3();
Serial.println("c");
break;
default:
// if nothing else matches, do the default
// default is optional
Serial.println("Fail data");
} }
}
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: arduino nano COM port
Síce mrtvá téma, ale keď už, tak aspoň radiť s rozumom.
Akú výhodu má miesto znakovej konštanty použiť desiatkovú ASCII hodnotu? Nie je to neprehľadné? To mám naspamäť vedieť kódy písmen a číslic?
Nie je to takto prehladnejšie?
Akú výhodu má miesto znakovej konštanty použiť desiatkovú ASCII hodnotu? Nie je to neprehľadné? To mám naspamäť vedieť kódy písmen a číslic?
Nie je to takto prehladnejšie?
Kód: Vybrať všetko
switch (Serial.read()) {
case 'a':
funkcia1();
Serial.println("a");
break;
case 'b':
funkcia2();
Serial.println("b");
break;
case 'c':
funkcia3();
Serial.println("c");
break;
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 6 Odpovedí
- 231 Zobrazení
-
Posledný príspevok od používateľa pocitujlasku
-
- 4 Odpovedí
- 849 Zobrazení
-
Posledný príspevok od používateľa lucky62
-
- 22 Odpovedí
- 1623 Zobrazení
-
Posledný príspevok od používateľa balu
-
- 11 Odpovedí
- 954 Zobrazení
-
Posledný príspevok od používateľa mirosne
-
- 10 Odpovedí
- 320 Zobrazení
-
Posledný príspevok od používateľa budvar10