Arduino programozás segítség
Re: Arduino programozás segítség
Köszi!
De:???
Magyarázatot is szeretnék kérni hozzá!
Amik ujjak benne:
unit16_t
Erről valami olyat oévastam hogy igy a változo értéke proci váltásával is azonos lett. De nem értettem igazán. Igy jo hogy előkerült.
Akkor a void oda ide ben a "_" van jeletősége?
Meg a felülírással mi a gond??
A pillanatnyi értékhez nem ez kell?
De:???
Magyarázatot is szeretnék kérni hozzá!
Amik ujjak benne:
unit16_t
Erről valami olyat oévastam hogy igy a változo értéke proci váltásával is azonos lett. De nem értettem igazán. Igy jo hogy előkerült.
Akkor a void oda ide ben a "_" van jeletősége?
Meg a felülírással mi a gond??
A pillanatnyi értékhez nem ez kell?
Re: Arduino programozás segítség
A címtől eltérő és célzott kérdésem lenne.
Böngészve a forum tartalmában, talaltam olyat hogy jo pár éve volt Bascom tanfolyam.
Ez még mindíg létezik?
Mi az a tudásszint ami már megfelelő alapokkal bír ilyen nekifutásnak??
Böngészve a forum tartalmában, talaltam olyat hogy jo pár éve volt Bascom tanfolyam.
Ez még mindíg létezik?
Mi az a tudásszint ami már megfelelő alapokkal bír ilyen nekifutásnak??
Re: Arduino programozás segítség
„Magyarázatot is szeretnék kérni hozzá!
Amik ujjak benne:
unit16_t
Erről valami olyat olvastam hogy így a változó értéke proci váltásával is azonos lett. De nem értettem „
Igen mivel én már leginkább a fejlettebb 32bites ARM procikat használom ehhez vagyok szokva.
„igazán. Igy jo hogy előkerült.
Akkor a void oda ide ben a "_" van jelentősége?”
Igen ezek új változók nevei. „_” csak lustaság a részemről, adhatsz nekik bármilyen tetszőleges neveket
„Meg a felülírással mi a gond??”
Mivel a loop folyamatosan fut ezért, minden körben beszorozza neked:
elorre= (elorre*inpl); // Mos te ezt egyenlővé teszed a szorzattal
vissza=(vissza*inpl); // Mos te ezt egyenlővé teszed a szorzattal
A megszakítás növeli a beszorzott értékeket: elorre++, vissza++ számlálókat.
Amik ezután már tovább szorzódnak, és teljesen fals eredményeket kapsz!
„A pillanatnyi értékhez nem ez kell? „
Azt hiszem magadtól is rájöttél, hogy nem?
Amik ujjak benne:
unit16_t
Erről valami olyat olvastam hogy így a változó értéke proci váltásával is azonos lett. De nem értettem „
Igen mivel én már leginkább a fejlettebb 32bites ARM procikat használom ehhez vagyok szokva.
„igazán. Igy jo hogy előkerült.
Akkor a void oda ide ben a "_" van jelentősége?”
Igen ezek új változók nevei. „_” csak lustaság a részemről, adhatsz nekik bármilyen tetszőleges neveket
„Meg a felülírással mi a gond??”
Mivel a loop folyamatosan fut ezért, minden körben beszorozza neked:
elorre= (elorre*inpl); // Mos te ezt egyenlővé teszed a szorzattal
vissza=(vissza*inpl); // Mos te ezt egyenlővé teszed a szorzattal
A megszakítás növeli a beszorzott értékeket: elorre++, vissza++ számlálókat.
Amik ezután már tovább szorzódnak, és teljesen fals eredményeket kapsz!
„A pillanatnyi értékhez nem ez kell? „
Azt hiszem magadtól is rájöttél, hogy nem?
Re: Arduino programozás segítség
A bascom tanfolyam tudtommal jogi visszaélések miatt, kikerült a projektből!
Erről bővebben ROBERT nyilatkozhat!
Pedig nagyon szuper volt, és nagyon hiányzik!
Szégyellje magát! Aki miatt ezt nélkülöznünk kel!
Erről bővebben ROBERT nyilatkozhat!
Pedig nagyon szuper volt, és nagyon hiányzik!
Szégyellje magát! Aki miatt ezt nélkülöznünk kel!
Re: Arduino programozás segítség
Ok! Most így már sokkal tisztábban látom a kodod.
Köszönöm.
Köszönöm.
Re: Arduino programozás segítség
Játszadozom a gondolattal, hogy nekiállok tft-n megjeleníteni dolgokat. Csak hát ez már nem olyan egyszerű, mint a karakteres lcd. Fórumon kutakodtam de nem találtam kiindulási alapot. Tudtok e olyan dokumentációt ami segíthet nekem a kezdő lépésektől indulva. Kijelzőt még nem vettem, esetleg tanács hogy milyet. Uno lapkám van!
Re: Arduino programozás segítség
UNO - kicsi. A grafikus kijelző az UNO memóriájának >80%át megeszi és a flashból is 15...20k-t.
Megismerni én a 2.4"-t szoktam javasolni - touch-l.
De nézd meg a Nextionokat is (soros kommunikációs).
Drágább, de töredék idő rá fejleszteni!
Megismerni én a 2.4"-t szoktam javasolni - touch-l.
De nézd meg a Nextionokat is (soros kommunikációs).
Drágább, de töredék idő rá fejleszteni!
http://www.tavir.hu - a gazda
Re: Arduino programozás segítség
Kód: Egész kijelölése
TWI COM MASTER */
#include<Wire.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd(4,5,6,7,8,9);
byte A;
byte B;
byte C;
byte D;
byte Val[4];
void setup(){
Wire.begin();
lcd.begin(20,4);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Val1");
lcd.setCursor(0,1);
lcd.print("Val2");
lcd.setCursor(0,2);
lcd.print("Val3");
lcd.setCursor(0,3);
lcd.print("Val4");
}
void loop(){
Wire.requestFrom(2,4);
Val[0]=Wire.read();
Val[1]=Wire.read();
Val[2]=Wire.read();
Val[3]=Wire.read();
A=Val[0];
B=Val[1];
C=Val[2];
D=Val[3];
switch (A){
case 0:{
lcd.setCursor(5,0);
lcd.print(A);
break;}
case 1:{
lcd.setCursor(5,0);
lcd.print(A);
break;}
}
switch (B){
case 0:{
lcd.setCursor(5,1);
lcd.print(B);
break;}
case 1:{
lcd.setCursor(5,1);
lcd.print(B);
break;}
}
switch (C){
case 0:{
lcd.setCursor(5,2);
lcd.print(C);
break;}
case 1:{
lcd.setCursor(5,2);
lcd.print(C);
break;}
}
switch (D){
case 0:{
lcd.setCursor(5,3);
lcd.print(D);
break;}
case 1:{
lcd.setCursor(5,3);
lcd.print(D);
break;}
}
}
Re: Arduino programozás segítség
Kód: Egész kijelölése
include<Wire.h>
int EI=2;
int HI=3;
int F1=10;
int F2=11;
int F3=12;
int F4=13;
int KF=14;
int UF=15;
byte A;
byte B;
byte C;
byte D;
char outData[4];
void setup(){
Wire.begin(2);
Wire.onReceive(data);
pinMode(EI,INPUT);
pinMode(HI,INPUT);
pinMode(F1,INPUT);
pinMode(F2,INPUT);
pinMode(F3,INPUT);
pinMode(F4,INPUT);
pinMode(KF,INPUT);
pinMode(UF,INPUT);
}
void loop(){
if(digitalRead(EI)==LOW&&digitalRead(HI)==LOW){
delay(3);
A=0;
}
if(digitalRead(EI)==HIGH&&digitalRead(HI)==LOW){
delay(3);
A=1;
}
if(digitalRead(EI)==LOW&&digitalRead(HI)==HIGH){
delay(3);
A=2;
}
if(digitalRead(F1)==LOW&&digitalRead(F2)==LOW&&digitalRead(F3)==LOW&&digitalRead(F4)==LOW){
delay(3);
B=0;
}
if(digitalRead(F1)==HIGH&&digitalRead(F2)==LOW&&digitalRead(F3)==LOW&&digitalRead(F4)==LOW){
delay(3);
B=1;
}
if(digitalRead(F1)==LOW&&digitalRead(F2)==HIGH&&digitalRead(F3)==LOW&&digitalRead(F4)==LOW){
delay(3);
B=2;
}
if(digitalRead(F1)==LOW&&digitalRead(F2)==LOW&&digitalRead(F3)==HIGH&&digitalRead(F4)==LOW){
delay(3);
B=3;
}
if(digitalRead(F1)==LOW&&digitalRead(F2)==LOW&&digitalRead(F3)==LOW&&digitalRead(F4)==HIGH){
delay(3);
B=4;
}
if(digitalRead(KF)==HIGH){
delay(3);
C=1
}
else{C=0;}
if(digitalRead(UF)==HIGH){
delay(3);
D=1;
}
else{D=0;}
}
void data(){
Wire.write(outData);
}
Re: Arduino programozás segítség
Üdv mindenkinek!
Help me!
Valamiért nem jön össze a masteren....
Az első változó megkapja az értéket de a többi már nem...
Mi az oka???
Típus konverzio??
Nem tudok rájönni.....
Help me!
Valamiért nem jön össze a masteren....
Az első változó megkapja az értéket de a többi már nem...
Mi az oka???
Típus konverzio??
Nem tudok rájönni.....
Re: Arduino programozás segítség
Helyesbitek. Slavenel a char tömb elemei:
A,B,C,D
char outData[]={A,B,C,D};
A,B,C,D
char outData[]={A,B,C,D};
Re: Arduino programozás segítség
Az outData változó bytben is próbáltam küldeni.
Annyi már lejött az egészből hogy a slaveban van hiba.
Mert ha a outData tömböt a küldéskor az indexét léptetem. Akko el is megy minden adat csak a masteren nem tudom akkor feldolgozni.
Annyi már lejött az egészből hogy a slaveban van hiba.
Mert ha a outData tömböt a küldéskor az indexét léptetem. Akko el is megy minden adat csak a masteren nem tudom akkor feldolgozni.
Re: Arduino programozás segítség
Nem töltöd fel, sehol értékel a tömbödet: char outData[4]; ? Üres marad!
Mit küldesz?
Nem adod át a tömb hosszát: Wire.write(outData,?); ?
Ha pointerrel hívod meg, kéri a méretet is:
// must be called in:
// slave tx event callback
// or after beginTransmission(address)
size_t TwoWire::write(const uint8_t *data, size_t quantity);
Helyesen: Wire.write(outData,4);
Mit küldesz?
Nem adod át a tömb hosszát: Wire.write(outData,?); ?
Ha pointerrel hívod meg, kéri a méretet is:
// must be called in:
// slave tx event callback
// or after beginTransmission(address)
size_t TwoWire::write(const uint8_t *data, size_t quantity);
Helyesen: Wire.write(outData,4);
Re: Arduino programozás segítség
De feltöltöm!!
Azért írtam a helyesbítést.. két kommentel a slave code alatt.
Mert a slave codebol kimaradt véletlen.
Azért írtam a helyesbítést.. két kommentel a slave code alatt.
Mert a slave codebol kimaradt véletlen.
Re: Arduino programozás segítség
De én így küldtem char ként
Wire.write(outData);
byte ként
Wire.write(outData);
Wire.write(outData);
byte ként
Wire.write(outData);