Moje začiatky s Arduinom + projekty

Sekcia určená pre Arduino nadšencov

Moderátor: Moderátori

sf777
Nový člen
Nový člen
Príspevky: 83
Dátum registrácie: 01 Nov 2017, 10:20
Bydlisko: Vranov nad Topľou

Moje začiatky s Arduinom + projekty

Príspevok od používateľa sf777 » 30 Nov 2017, 20:55

Caute
Pred casom som si zadovazil arduino uno R3 a velmi ma osovilo. Tak som zacal skusat nejake drobne projekty. Na zaciatok asi ako kazdy tak som si poblikal s LED. :mrgreen: Zacal som o tom v tomto vlakne . Tu by som chel ako zaciatocnik pokracovat a snazit sa pochopit jednozlive principy programovania a fungovania arduina. Mozno ue to niekomu pomoze. Vopred chcem podakovat vsetkym co sa pripoja do temy na nam zaciatocnikom co to vysvetlia. :)
Tu je trebars postupne stmievanie 6x led

Kód: Vybrať všetko

int ledka1 = 3; //Vytvoríme nový objekt "ledka1". 3 = číslo pinu.
int ledka2 = 5;
int ledka3 = 6;
int ledka4 = 9;
int ledka5 = 10;
int ledka6 = 11;
int jas = 0; //Vytvoríme novú hodnotu "jas". 0 = hodnota jasu.
int cas = 3; //Vytvoríme novú hodnotu "cas".  = hodnota mili sekund.

void setup()//Základné nastavenia programu,
{
  pinMode(ledka1, OUTPUT); //Nastavíme pin 3 ako výstup.
  pinMode(ledka2, OUTPUT); //Nastavíme pin 5 ako výstup.
  pinMode(ledka3, OUTPUT); //Nastavíme pin 6 ako výstup.
  pinMode(ledka4, OUTPUT); //Nastavíme pin 9 ako výstup.
  pinMode(ledka5, OUTPUT); //Nastavíme pin 10 ako výstup.
  pinMode(ledka6, OUTPUT); //Nastavíme pin 11 ako výstup.
}
void loop() //Opakovanie programu.
{
  //led1
  //Pre tento štýl kódu použijeme funkciu "for" pre.
  //Kód dole v preklade znamená.

  for(jas = 0; jas < 255; jas ++) //Pre (jas sa = 0; keď je jas menší, než 255; jas stúpa).
  {
    //Aj keď je pin 3 digitálny, aj tak použijeme funkciu
    //analogWrite a nie digitalwrite. Je to preto, pretože
    //chceme zapísať špecifickú hodnotu od 0 po 255.
    analogWrite(ledka1, jas);
    delay(cas); //Pauza medzi jednotlivými fázami rozsvecovania.
  } 
  //Kód dole v preklade znamená.
  //Pre (jas sa = 255; keď je jas menší vačší 0; jas klesá).
  for(jas = 255; jas > 0; jas --)
  {
    analogWrite(ledka1, jas); // Zapišeme hodnotu jas na pin 9.
    delay(cas); //Pauza medzi jednotlivými fázami stmievania.
    digitalWrite(ledka1,LOW);   //na pin 03 vypni prud
  }
  //led2
  for(jas = 0; jas < 255; jas ++)
  {
    analogWrite(ledka2, jas);
    delay(cas);
  }
  for(jas = 255; jas > 0; jas --)
  {
    analogWrite(ledka2, jas);
    delay(cas);
    digitalWrite(ledka2,LOW);
  }
  //led3
  for(jas = 0; jas < 255; jas ++)
  {
    analogWrite(ledka3, jas);
    delay(cas);
  }
  for(jas = 255; jas > 0; jas --)
  {
    analogWrite(ledka3, jas);
    delay(cas);
    digitalWrite(ledka3,LOW);
  }
  //led4
  for(jas = 0; jas < 255; jas ++)
  {
    analogWrite(ledka4, jas);
    delay(cas);
  }
  for(jas = 255; jas > 0; jas --)
  {
    analogWrite(ledka4, jas);
    delay(cas);
    digitalWrite(ledka4,LOW);
  }
  //led5
  for(jas = 0; jas < 255; jas ++)
  {
    analogWrite(ledka5, jas);
    delay(cas);
  }
  for(jas = 255; jas > 0; jas --)
  {
    analogWrite(ledka5, jas);
    delay(cas);
    digitalWrite(ledka5,LOW);
  }
  //led6
  for(jas = 0; jas < 255; jas ++)
  {
    analogWrite(ledka6, jas);
    delay(cas);
  }
  for(jas = 255; jas > 0; jas --)
  {
    analogWrite(ledka6, jas);
    delay(cas);
    digitalWrite(ledka6,LOW);
  }
}
Teraz by som chcel skusit tzv "padajuce svetlo" . Vedeli by ste poradit ktorym smerom sa vydat a ci su na to nejake kniznice? Skusal som nejake postupne rosvecovanie led ale ani nahodou sa to na padajuce svetlo nepodoba.
dik

-- Spojený príspevok 30 Nov 2017, 22:09 --

Nasiel som nieco take ale mne na zaciatok by stacil jeden jednofarebny " cencúľ " len aby som pochopil princip.
0

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4318
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa misocko » 30 Nov 2017, 21:35

chces sa aj nieco naucit , alebo len pouzivat kniznice ?
Ak naucit, tak chces prave preskocit mesiace badania a hladas kniznicu na komunikaciu s inteligentnym LED pasikom.
Ak sa chces aj nieco naucit, tak este chvilu blikaj, prepinaj, rozsvecuj

//Aj keď je pin 3 digitálny, aj tak použijeme funkciu
//analogWrite a nie digitalwrite. Je to preto, pretože
//chceme zapísať špecifickú hodnotu od 0 po 255.

tento popis hovori ze sa mas snazit este pochopit o co ide, vies uz vobec co znamena napr : analogwrite 127?

PS: pritom v oblasti arduino sa citim ako uplny zaciatocnik, amater....
0

sf777
Nový člen
Nový člen
Príspevky: 83
Dátum registrácie: 01 Nov 2017, 10:20
Bydlisko: Vranov nad Topľou

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa sf777 » 30 Nov 2017, 21:50

Budem len rad ked tie komenty uvedies na spravnu mieru. To boli len take poznamky pre mna. :)
To padajuce svetlo nemusi by t s inteligentneho pasika stacilo by aj zopar obycajnych led len pre princip co a ako
vies uz vobec co znamena napr : analogwrite 127
ak sa nemylim tak je to sirka impulzu v tomto pripade 50%
caf caf

-- Spojený príspevok 30 Nov 2017, 22:53 --

nedalo mi a nasiel som pekny obrazok, ved sa mozno niekomu zide :)
Obrázok
0

alidedko
Ultimate člen
Ultimate člen
Príspevky: 3963
Dátum registrácie: 04 Feb 2013, 22:04
Bydlisko: U alibabky v Poprade
Vek: 32

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa alidedko » 30 Nov 2017, 21:57

Padajuce svetlo nie je nic ine, ako rotujuci bit :)
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.

sf777
Nový člen
Nový člen
Príspevky: 83
Dátum registrácie: 01 Nov 2017, 10:20
Bydlisko: Vranov nad Topľou

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa sf777 » 30 Nov 2017, 22:14

Vedel by si o tom napisat nieco bližšie?
caf caf a dik
0

alidedko
Ultimate člen
Ultimate člen
Príspevky: 3963
Dátum registrácie: 04 Feb 2013, 22:04
Bydlisko: U alibabky v Poprade
Vek: 32

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa alidedko » 30 Nov 2017, 22:21

Bude ti naprd, ked dostanes hotovy projekt pod nos :)

Skus sa zamysliet, o co tam vlastne ide. Mas 8bit port. Pouzijes cyklus, aby si si ten jeden bit poposuval po vsetkych pinoch. Uz to len dat "na papier" :)
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.

sf777
Nový člen
Nový člen
Príspevky: 83
Dátum registrácie: 01 Nov 2017, 10:20
Bydlisko: Vranov nad Topľou

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa sf777 » 30 Nov 2017, 22:30

nechcem hotovy projekt. tak sa nic nedozviem len to okopcim.
mozno ze by to slo s 74HC595
0

alidedko
Ultimate člen
Ultimate člen
Príspevky: 3963
Dátum registrácie: 04 Feb 2013, 22:04
Bydlisko: U alibabky v Poprade
Vek: 32

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa alidedko » 30 Nov 2017, 22:36

Vramci setrenia pinov urcite ano.
Vramci zaciatkov so seriovou komunikaciou ano.

Ale ak to ma byt len blbinka na pochopenie principu, tak ti jeden port sam o sebe uplne staci.
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa peterple » 30 Nov 2017, 22:51

Kód: Vybrať všetko

int ledka1 = 3; //Vytvoríme nový objekt "ledka1". 3 = číslo pinu.
int jas = 0; //Vytvoríme novú hodnotu "jas". 0 = hodnota jasu.
int cas = 3; //Vytvoríme novú hodnotu "cas".  = hodnota mili sekund.

  for(jas = 0; jas < 255; jas ++) //Pre (jas sa = 0; keď je jas menší, než 255; jas stúpa).
  {
  } 
Trochu ti to z oponujem.

Ten for ti kompilátor nezoberie. Ak je to tu myslené ako ukážka pre začiatočníkov tak ich sklameš lebo to nerozchodia.

Konštrukcie v prvých troch riadkoch sa medzi programátormi neoznačujú objekt ani hodnota, ale premenná (variable). S tým objektom je to horšie. Lebo označenie objekt sa v C++ používa ale znamená to niečo iného. Bolo by dobré držať sa zaužívanej terminológie ak si chceš v budúcnosti rozumieť s ostatnými.

Problém s premennými je ten že sa vytvárajú v pameti RAM (na AVR/arduino SRAM) a tej je tu nezvykle málo. Preto ju treba dosť zúfalo šetriť. Ty si na premenné ktoré obsahujú hodnoty v rozsahu 0 - 255 zbytočne použil premenné s dĺžkou 2 byte (int). Teraz to nie je tragédia ale ide o to že získaš nesprávny návyk ktorý ťa zloží v momente keď to budeš najmenej čakať.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4318
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa misocko » 30 Nov 2017, 22:54

sf777: super, pokrocil si minimalne v tom 0 -255 :potlesk:
ako dalej s rozsvecovanim led , Ti velmi neporadim, padajuce led ma nikdy nenapadli, isiel som do nastavovania farieb farebnych LED, naslene pokus o riadenie ventilatorceka v zavislosti od teploty (moj "PID"), pokus o riadenie troch tyristorov v trojfazovej sieti, a v neposlednom rade riadenie VFD displeja s tym ze som musel aj vdaka ludi tu z fora prist na to co poslat na pin, nielen hodit znak do kniznice. momentalne mam arduino uno aj mega hodene niekde v krabici :(

alidedko: dovolim si citovat zawina v jednom z jeho super clankov:

Kód: Vybrať všetko

PORTD |= (1 << PD6) – zápis log. 1 na pin 6 portu D
PORTD &= ~(1 << PD6) – zápis log.0 na pin 6 portu D

Tento zápis robí začiatočníkom asi najväčší problém, preto si ho rozoberieme na jednotlivé časti.
V hlavičkovom súbore sú definované jednotlivé piny portu. Konkrétne ku PD6 je priradené číslo 6. Je to tak aj pre ďalšie piny napr. PD0=0, PD1=1,PD2=2 .....
Zápis (1 << PD6) možno nahradiť aj za zápis (1 << 6), teda log. 1 (hodnota 0b00000001) je bitovo posunutá o 6 bitov doľava - 0b01000000. Toto je teda naša maska ktorú sme vytvorili a budeme s ňou ďalej pracovať.
vdaka tomuto som skusil svoj prvy MCU naprogramovat az teraz v dobe arduina, nechapem ako niekto mohol vymysliet tak zlozite poslanie jednej logickej "1" na urcity pin , namiesto primitivneho arduino
digitalWrite(6, HIGH); :lol: - tomuto rozumiem aj ja
0

sf777
Nový člen
Nový člen
Príspevky: 83
Dátum registrácie: 01 Nov 2017, 10:20
Bydlisko: Vranov nad Topľou

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa sf777 » 30 Nov 2017, 23:09

Som za kazdu kritiku a beriem to. Len zacinam a ucim sa. Zase ono by bolo aj dobre to dat na spravnu mieru a ozrejmit ako to je spravne (zaco dik) aby ostatni zaciatocnici nerobili tie iste chyby.
Mimochodom nasiel som nieco taketo. :mrgreen:
caf caf
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa peterple » 30 Nov 2017, 23:33

Že to bude v poriadku očakávam od teba. Čo je podľa mňa zle som napísal. Opraviť si to môžeš ale aj nemusíš.
K tomu projektu čo si našiel - už ti to tu písal alidedko. Na blikanie s 8 alebo 16 led nepotrebuješ posuvné registre. Máš dostatočný počet vývodov. Načo si to komplikovať zatiaľ zbytočným hw zapojením.

misocko:
digitalWrite je super. Len ja by som jaksi nikdy nevedel kde a čo zapínam. Keď pozriem do DS tam žiadne piny 1, 2, .... nie sú.
Okrem toho je pomerne pomalý. Takže tam kde to treba to aj arduinisti obchádzajú.
Tomu čo písal zawin aj tak neujdeš. Vráti sa ti to ako bumerang, len čo začneš riadiť nejaké periférie ktoré neriadi arduino samo. Nedávno sme tu tiež riešili nejaké to andovanie na porte.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

alidedko
Ultimate člen
Ultimate člen
Príspevky: 3963
Dátum registrácie: 04 Feb 2013, 22:04
Bydlisko: U alibabky v Poprade
Vek: 32

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa alidedko » 01 Dec 2017, 07:22

0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6202
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa pocitujlasku » 01 Dec 2017, 08:28

alidedko napísal:Padajuce svetlo nie je nic ine, ako rotujuci bit :)
Ale ak to chces aj s "chvostom", tak to uz je bajt :) viac sa mi paci ten fade efekt, lenze to by chcelo tie inteligentne ledky, a cenovo este nie su na komplet vianocnu vyzdobu.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

sf777
Nový člen
Nový člen
Príspevky: 83
Dátum registrácie: 01 Nov 2017, 10:20
Bydlisko: Vranov nad Topľou

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa sf777 » 01 Dec 2017, 09:22

pocitujlasku napísal:.... aj s "chvostom"
Ano presne to :mrgreen: Lebo obycajny "blikac s 8 led si viem urobit ale nema to ten "chvost". Tomu rozumiem aj principialne.
0

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4318
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa misocko » 01 Dec 2017, 09:51

peterple napísal: misocko:
digitalWrite je super. Len ja by som jaksi nikdy nevedel kde a čo zapínam. Keď pozriem do DS tam žiadne piny 1, 2, .... nie sú.
Okrem toho je pomerne pomalý. Takže tam kde to treba to aj arduinisti obchádzajú.
Tomu čo písal zawin aj tak neujdeš. Vráti sa ti to ako bumerang, len čo začneš riadiť nejaké periférie ktoré neriadi arduino samo. Nedávno sme tu tiež riešili nejaké to andovanie na porte.
mam sice tu v okruhu spolupracovnikov asi ako jediny trochu programatoske myslenie (obcas mi nerozumeju, nevedia o akej premennej je prave rec :lol: ) , ale posuvanie a maskovanie bytov som nepochopil a zanevrel som som nan hlboko este na vyške , zrejme aj vďaka arogantnosti nejakeho greckeho studaka ktory nas to vtedy mal na cvikach naucit. Odvtedy mam k tomu odpor a neviem to pochopit. Zrejme aj preto nikdy nebudem robit projekt kde by som to potreboval :(
co sa tyka toho ktory pin prave zapinam, je na arduine uplne jednoduche - je to napisane priamo na tom plosaku :)
0

Používateľov profilový obrázok
marioo
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1112
Dátum registrácie: 15 Júl 2012, 12:28
Bydlisko: SVK
Vek: 50

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa marioo » 01 Dec 2017, 11:28

0

Používateľov profilový obrázok
budvar10
Pokročilý člen
Pokročilý člen
Príspevky: 983
Dátum registrácie: 15 Dec 2014, 10:55
Bydlisko: Košice

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa budvar10 » 01 Dec 2017, 11:36

Tá stránka je Roba Ulbrichta.
0

sf777
Nový člen
Nový člen
Príspevky: 83
Dátum registrácie: 01 Nov 2017, 10:20
Bydlisko: Vranov nad Topľou

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa sf777 » 01 Dec 2017, 11:38

Ano cital som tie stranky a pozeral aj jeho videa na youtube.
0

Používateľov profilový obrázok
roboulbricht
Stály člen
Stály člen
Príspevky: 156
Dátum registrácie: 07 Jan 2015, 12:01
Bydlisko: Banská Bystrica
Vek: 54
Kontaktovať používateľa:

Re: Moje začiatky s Arduinom + projekty

Príspevok od používateľa roboulbricht » 01 Dec 2017, 23:16

Blikač s chvostom. :-) Pred pár mesiacmi som sa s tým hral. Síce sa nepohybuje, ale ten zdroják sa dá ľahko upraviť. V texte je vysvetlené, ako sa robia odtiene jasu pomocou timera.

https://www.arduinoslovakia.eu/blog/201 ... om-arduine
https://github.com/RoboUlbricht/arduino ... er1_8x_pwm
https://www.youtube.com/watch?v=XpKu0IqN8i0

0

Napísať odpoveď