05-13-2021, 01:18 PM
Koju knjigu za C/C++ preporučujete za početnike,ako valja neka od ponuđenih od InfoElektronike ?
Arduino - tutorijali, pitanja, primjeri i projekti
|
05-13-2021, 01:18 PM
Koju knjigu za C/C++ preporučujete za početnike,ako valja neka od ponuđenih od InfoElektronike ?
05-13-2021, 02:28 PM
Mogu da preporucim jednu malo stariju knjigu koja vrlo sazeto opisuje stvari u vezi C-a (ne bavi sa C++), ima lep uvod oko osnovnih stvari (pravila i sintaksa) i posle se prelazi na PIC i neke konkretne stvari oko njega (pozajmio sam nekome moj primerak).
https://www.infoelektronika.net/knjiga-p...ntrolere-1 Na zalost rasprodata je ta knjiga ali @npejcic je bio ukljucuen oko te knjige, mozda ima negde PDF da podeli ... Ima i ova: https://www.infoelektronika.net/knjiga-p...ziku-c-193 I ova (tu imam evo prelistavam, nije losa) https://cet.rs/proizvod/programski-jezik-c/
08-15-2021, 08:59 PM
Da pitam i ja nesto uvezi ovog koda sa diodicama.Radi sve kako treba i posle par minuta diode pocnu da se pale bezveze,neke ostanu non stop upaljene i kad resetujem arduino ponovo radi normalno i onda pocne da se glupira.
int Pin; int timer = 1000; int ledPins[] = {4, 5, 6, 7, 8,0,}; int pinCount = sizeof(ledPins)/sizeof(int); void setup() { for (Pin = 0; Pin < pinCount; Pin++) { pinMode(ledPins, OUTPUT); } } void loop() { for (Pin = 0; Pin < pinCount; Pin++) { digitalWrite(ledPins[Pin], HIGH); delay(timer); digitalWrite(ledPins[Pin], LOW); //delay(timer); } for (int Pin = pinCount; Pin >= 0; Pin--) { digitalWrite(ledPins[Pin], HIGH); delay(timer); digitalWrite(ledPins[Pin], LOW); //delay(timer); } (08-15-2021, 08:59 PM)MILANNN Wrote: Da pitam i ja nesto uvezi ovog koda sa diodicama.Radi sve kako treba i posle par minuta diode pocnu da se pale bezveze,neke ostanu non stop upaljene i kad resetujem arduino ponovo radi normalno i onda pocne da se glupira. Ako zelis da svaki od tih pinova u nizu proglasis izlaznim (OUTPUT) onda umesto ovog : Code: for (Pin = 0; Pin < pinCount; Pin++) { Treba da napisese ovako : Code: for (Pin = 0; Pin < pinCount; Pin++) { E sad da li je to izvor tvog problema ne znam ali svakako je greska. p.s. ispravi i ovo : Code: int ledPins[] = {4, 5, 6, 7, 8,0,}; u ovo : Code: int ledPins[] = {4, 5, 6, 7, 8,0}; Mozda bi ovo moglo biti taj tvoj problem.
08-15-2021, 10:07 PM
Probacu sutra.Uglavnom normalno radi par minuta i onda pocne da se glupira.Sutra cim stignem sposla izmenicu kod i probacu.
08-16-2021, 10:06 AM
Nedostaje ti vitičasta zagrada na kraju loop()
08-16-2021, 10:13 AM
(08-15-2021, 09:38 PM)me[R]a Wrote: p.s. ispravi i ovo : Tehnicki ovo nije greska, kompajler to sve skonta i optimizuje bez problema. Postoje drugi rigorozniji profili za prevodioce gde se takve stvari trebaju poprave od stane korisnika ali za Arduino to nije problem, kod njih je malo "opustenija" situacija.
To sam i ja primetio jos sinoc medjutim ne verujem da je to u pitanju posto arduino IDE nece da kompajlira ako sintaksno nije ispravno. Bez te zagrade javlja gresku tako da verujem da ona fali samo kada je copy/paste ovde na forumu. Ono sto je @me[R]a korigovao bi trebalo da bude ono sto pravi problem, pogotovu deo oko definicije izlaznih pinova.
Linux is like a wigwam NO Windows NO Gates and an Apache inside
08-16-2021, 10:40 AM
Nije dobar setup. Ovaj deo
Code: pinMode(ledPins, OUTPUT); Treba: Code: void setup() {
08-16-2021, 12:41 PM
Pisem sposla nabrzinu. Zaboravio sam da kazem, nekad diode svetle slabijim sjajem a nekad bljesne bas jako. Probacu sve sto ste mi napisali ali izgleda da je do pogresno definisanja činova. Desilo mi se nesto slicno zbog toga da umesto PWM koji treba da bude cetvrtke ja sam dobio jednu zaobljene ivicu.
08-16-2021, 01:33 PM
(08-16-2021, 10:13 AM)mikikg Wrote:(08-15-2021, 09:38 PM)me[R]a Wrote: p.s. ispravi i ovo : Jeste za arduino nije sintaksna greska ali po meni taj niz onda ima jedan element vise nego sto se ocekuje. (08-16-2021, 12:41 PM)MILANNN Wrote: ali izgleda da je do pogresno definisanja pinova. O tome se radi. Kad napišeš: Code: for (Pin = 0; Pin < pinCount; Pin++) { Inicializovao si samo prvi član niza (pin 4) kao izlazni. Ostali su pinovi u default stanju nakon power up. Ovo je ono što ti želiš: Code: for (Pin = 0; Pin < pinCount; Pin++) {
08-16-2021, 03:41 PM
08-16-2021, 05:14 PM
Evo kako radi.Koliko sam ja razumeo ono sto sam citao niz se zaustavlja kad naidje na nulu,alp je nema ide dalje dok je ne nadje,mada sam ja nesiguran u sebe ali probao sam ovako int pinCount = 8; i deveti je nula gde staje sto mi bilo isto i ovako
int pinCount = sizeof(ledPins)/sizeof(int)-1; gde -1 zaustavi.Neznam koliko sam u pravu ali ovako radi bez greske. int Pin = 0; int timer = 200; int ledPins[] = {5,6,7,8,9,10,11,12,0}; //int pinCount = 8;//----------------------------------------RADI OVAKO int pinCount = sizeof(ledPins)/sizeof(int)-1;//------------------------------ I OVAKO void setup() { for (Pin = 0; Pin < pinCount; Pin++) { pinMode(ledPins[Pin], OUTPUT); //---------------------------------------[Pin] delay(1); } } void loop() { for (Pin = 0; Pin < pinCount; Pin++) { digitalWrite(ledPins[Pin], HIGH); delay(timer); digitalWrite(ledPins[Pin], LOW); } for (int Pin = pinCount; Pin > 0; Pin--) { digitalWrite(ledPins[Pin], HIGH); delay(timer); digitalWrite(ledPins[Pin], LOW); } } (08-16-2021, 05:14 PM)MILANNN Wrote: Evo kako radi.Koliko sam ja razumeo ono sto sam citao niz se zaustavlja kad naidje na nulu,alp je nema ide dalje dok je ne nadje,mada sam ja nesiguran u sebe ali probao sam ovako int pinCount = 8; i deveti je nula gde staje sto mi bilo isto i ovako Sa ovim Code: int pinCount = sizeof(ledPins)/sizeof(int)-1;//------------------------------ I OVAKO izbegavas tu 0 (nulu) koja je u zadnji element niza. Ali ipak si ovo ispravio kako treba, a ja sam ti u prvom odgovoru to i napoemnuo kao mogucu gresku Code: for (Pin = 0; Pin < pinCount; Pin++) { p.s. u buduce deo koda treba staviti pod tagove "code /code" radi lakseg pracenja unutar poruke
08-16-2021, 07:46 PM
Nisam ja neki poznavalac programiranja, samo mi je slucajno palo napamet da ovako - int pinCount = sizeof(ledPins)/sizeof(int)- neoduzima tu nulu pa ajde da probam sa - 1 i ispade da radi.
08-16-2021, 08:27 PM
Pa sa tom aritmetickom operacijom int pinCount = sizeof(ledPins)/sizeof(int) ti ustvari odredjujes broj elemenata niza, koji je u tvom slucaju 9.
sizeof(int) odredjuje koliko zauzaima memorije jedan int i to je u c++ uvek 4 bajta, e sad posto ti imas niz koji je tipa int on u memoriji zauzima onoliko bajtova koliki je broj elemenata * 4 bajta i u tvom slucaju 9*4 = 36 bytes. Sad tom aritmet. op. pinCount = sizeof(ledPins)/sizeof(int) tj. 36/4 = 9 ti si ustvari odredio broj elemenata niza. Posto ga ti umanjujes sa -1 tada ce for petlja da cita samo prvih 8 elemenata tog niza tj. ta 0 (nula) kao zadnji element niza nece se uzimati u obradu u daljem delu programa...
08-16-2021, 09:21 PM
Da tako ispada da se nula necita i ispade da radi bez greske.Koliko sam ja shvatio da bi se niz zaustavio treba da naidje na 0 da nebi produzio dalje,ovo-1 je izgleda to sprecilo.Stvarno neznam,slucajno mi je palo napamer i ispade da bez tog -1 program posle nekog vremena pocne da se glupira i proradi tek kad resetujem arduino.
08-16-2021, 09:23 PM
Ako na pr stavimo int pinCount = 8; radi bez greske a ako uzmemo i nulu int pinCount = 9; onda ponovo isti slucaj sa greskom pa mi je tako palo napamet da probam sa -1
|
« Next Oldest | Next Newest »
|