Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   483 / 854
(#) vyky hozzászólása Okt 28, 2018 /
 
A hiba kijavítva.Köszönöm az észrevételeket. De viszont abban kellene segíteni nagyon,hogy azt hogy tudom megoldani hogy a ciklus érték nem mindig ugyan az legyen,hanem választható 4 variációból? Pl: 15-15 centi,20-20 centi,20-40 centi.
Gondolom többen kellene,de az nagyon sötét folt nekem.
Ha lehetne valami példával mutassa meg nekem valaki.
Előre is köszönöm.
Addig próbálom magamtól megcsinálni.
(#) KoblogPerGyok válasza vyky hozzászólására (») Okt 28, 2018 /
 
Szia!

if (distance >= 10){
digitalWrite (led,HIGH);
}


gondolom itt kell az, hogy ne csak 10-re működjön. Egyszerű! Felveszel egy változót pluszban, majd értéket adsz neki pl a setup-ban. Legyen ennek a változónak a neve distance_max. Setup-ban ez vegyen fel 10-t.

Ide aza kód ami lekéri a gombok állapotát....

if (distance >=distance_max){
digitalWrite (led,HIGH);
}

Ha van még szabad lábad, akkor megteheted azt, hogy rápakolsz egy kapcsolót. A loop-ban lekérdezed ennek az állapotát, és ha az igaz, akkor ez a változó legyen 15. Egy másikra is teszel egy gombot, azm meg 20. és így tovább.


1 gombbal megteheted azt, hogy minden gombnyomásra növeli öttel, max 20-ig vagy ameddig akarod. Egy másikkal meg csökkented egy minimum értékig.


Potméterrel is megoldhatod szintén. Keypadról is beolvashatod, serial moitorról is beolvashatod, GSM modulról is megkaphatod, Wifin keresztül is. Rengeteg megoldás van, ki kell választanod a neked tetszőt!

A gombnyomásos megoldásnál figyelni kell a prell-re is. Én kiszervezném ezt is egy függvénybe.
(#) KoblogPerGyok válasza vyky hozzászólására (») Okt 28, 2018 /
 
Ha két érték között kell:

if (valami> valami_minimum ) ÉS (valami<valami_maximum)

akkor ez mikor fut le? Ehhez két plusz változó kell.
(#) zsolt58 hozzászólása Okt 28, 2018 /
 
Sziasztok.
Tegnap vettem egy ESP-01 WI-FI modult adapterrel együtt.
És nagyon sokat olvasgattam az interneten de nem találtam semmilyen leírást hogy hogy kellene működésre bírni. Egyenlőre nincs vele semmi célom csak próbálgatás képpen szeretném a segítséget kérni. A későbbiekben szeretném majd használni élesbe de addig meg szeretném tanulni a működését csak hát kellene valami elindító hozzá.
Szép estét.
(#) tbarath válasza zsolt58 hozzászólására (») Okt 28, 2018 / 1
 
Erősen csodálkoznék, ha ne lenne 100 ezer találat az interneten ESP01 használatára. Mit szeretnél csinálni, amit nem találtál meg?
(#) atus1981 válasza zsolt58 hozzászólására (») Okt 28, 2018 /
 
Osztom Tbarath véleményét.
De talán mint kezdőnek ajánlom az esp8266 wifi modul témát és egy espeasy firmware-t feltölteni rá.
(#) zsolt58 válasza tbarath hozzászólására (») Okt 28, 2018 /
 
Nem tudom csak próbálgatni akármit.
És nem találtam egy használható magyar cikket sem.
(#) tbarath válasza zsolt58 hozzászólására (») Okt 28, 2018 / 1
 
Ja hogy magyarul, az ritka eléggé, de ez igaz mindenre. Kicsi a magyar nyelvű piac, és aki olvasna ilyet az többnyire már rég megtalálta az adott tartalmat angolul.
Mindenesetre: Bővebben: Link
Az első pár oldalon találtam pár blogbejegyzést magyarul, bár nem olvastam át érdemben, de a semminél több. Illetve itt a fórumon is van topic, már linkelték is.
(#) zsolt58 válasza tbarath hozzászólására (») Okt 28, 2018 /
 
Köszi. Majd olvasgatok akkor még.
Üdv.
(#) icserny válasza zsolt58 hozzászólására (») Okt 29, 2018 /
 
Ez egy angol nyelvű leírás, de a képek meg a letöltési linkek eléggé egyértelműek, nyelvtudás nélkül is. (Gondolom, Arduino IDE alatt akarod programozni, ha már ebbe a témakörben tetted fel a kérdést...)
(#) neogeo2 válasza zsolt58 hozzászólására (») Okt 29, 2018 /
 
Szia!
Az érintetlen modulokon valamelyik AT firmware szokott lenni gyárilag. Kipróbálni ki tudod akármelyik terminálprogrammal (pl. Putty). Az AT parancsokról van itt a HE fórumon egy cikk, de a teljes ide vonatkozó pdf dokumentum is letölthető a netről. Van egy ESPlorer nevű program, ami segít kiismerni ezt a fajta használatot. A legtöbben egyébként Arduinoval készítenek saját programot a modulhoz. Magyar nyelvű doksi kevés van sajnos, de angolból rengeteg. Érdemes ezeket is megnézni, a példaprogramokból rengeteget lehet tanulni. Az ESP-01 modulnak sajnos kevés a kivezetett GPIOja, ezért az alkalmazhatósága eléggé korlátozott. Szerintem más kontrollerrel együtt válik csak igazán használhatóvá.
(#) haragati válasza KoblogPerGyok hozzászólására (») Okt 29, 2018 /
 
Ehhez jut eszembe, hogy használta már valaki a XOD grafikus fejlesző/IDE programot Arduinohoz,
Látszólag egyszerűnek és rugalmasnak tűnik!
(#) atus1981 hozzászólása Okt 29, 2018 /
 
Sziasztok!
Még mindig a soros kommunikációval küzdök.
While ciklust még nem használtam sehol, viszont véleményetek szerint ez milyen hatással lesz a programra:
  1. while (Serial.available() > 0) {      
  2.  int inByte = Serial.read();
  3. if (inByte == 'X') {
  4.  
  5.             Serial.println("X vetel");
  6.            
  7.           }
  8.    }
?
(#) tbarath válasza atus1981 hozzászólására (») Okt 29, 2018 /
 
Ez semmilyennel, max. belassítja kicsit.
Ugyanis a soros porton kapott értéket kiolvasod a queue-ból egy változóba addig, amíg a queue ki nem ürül. Szóval később - a most nem látott kódban - fel tudod dolgozni a legutolsó kiolvasott karaktert, a többi input elveszett.
(#) vyky hozzászólása Okt 30, 2018 /
 
Sziasztok ismét.
Kicsit tovább írtam a kódot,annyit változtattam rajra,hogy a különböző méreteket kapcsolóval aktiválom,így amelyik kapcsoló be van kapcsolva annak az értékével nullázódik a led.
De a 2-4 métereset nem tudom megoldani.
Tudom lehetne szebben is csinálni,de nekem erre futja
Valaki ránézne? Köszönöm.
  1. #include <LiquidCrystal.h>
  2.  
  3. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  4. #define outputA A2 //enkoder 1
  5.  #define outputB A3 //enkoder 2
  6.  int abutton =6;//1,5-1,5méter kiosztás
  7.  int bbutton =7;//2-2 méter kiosztás
  8.  int cbutton =8;//2-4 méter kiosztás
  9.  int astate =0;
  10.  int bstate =0;
  11.  int cstate =0;
  12.  int led = 10;// pisztolyszelep
  13.  int Pos = 0;
  14.  int State;
  15.  int LastState;  
  16.  int minPos = 18;//ezt kellene beírni valahogy
  17.  int maxPos = 39;//és ezt is
  18. const float pi = 3.14;
  19. byte V = 1;
  20. const int R = 7;//kerék átmérő
  21. const int N = 22;//encodr osztása
  22. float distance = 0;
  23.  
  24. void setup(){
  25. lcd.begin(16,2);
  26. pinMode(abutton, INPUT_PULLUP);
  27. pinMode(bbutton, INPUT_PULLUP);
  28. pinMode(cbutton, INPUT_PULLUP);
  29. pinMode (led,INPUT);
  30.    pinMode (outputA,INPUT);
  31.    pinMode (outputB,INPUT);
  32.    digitalWrite(led,LOW);
  33.    lcd.begin(16 ,2);
  34.    lcd.print("Festőgép");
  35.    // Reads the initial state of the outputA
  36.    LastState = digitalRead(outputA);  
  37.  
  38. }
  39. void loop() {
  40.      State = digitalRead(outputA);
  41.    if (State != LastState){    
  42.      
  43.      if (digitalRead(outputB) != State) {
  44.        Pos ++;
  45.      }
  46.      else {
  47.        Pos --;
  48.      
  49.    }
  50.    if (digitalRead(abutton)== LOW) {
  51.      distance = Pos+(2*pi*R)/N;
  52.      lcd.setCursor(0,1);
  53.      lcd.print("ertek");
  54.      lcd.println(distance);
  55.      lcd.println("cm");
  56.      lcd.setCursor(0,0);
  57.    lcd.print("1.5-1.5 meter");
  58.    if (Pos == 8){
  59.    V^= 1;
  60.   digitalWrite (led,V);
  61.     Pos = 0;    
  62.     distance = (distance +1 );    
  63.    LastState = State;}
  64.    
  65.     }
  66.        if (digitalRead(bbutton)== LOW) {
  67.      distance = Pos+(2*pi*R)/N;
  68.      lcd.setCursor(0,1);
  69.      lcd.print("ertek");
  70.      lcd.println(distance);
  71.      lcd.println("cm");
  72.      lcd.setCursor(0,0);
  73.    lcd.print("2-2   meter  ");
  74.    if (Pos == 18){
  75.    V^= 1;
  76.   digitalWrite (led,V);
  77.     Pos = 0;    
  78.     distance = (distance +1 );    
  79.    LastState = State;}
  80.    
  81.     }
  82.        if (digitalRead(cbutton)== LOW) {
  83.      distance = Pos+(2*pi*R)/N;
  84.      lcd.setCursor(0,1);
  85.      lcd.print("ertek");
  86.      lcd.println(distance);
  87.      lcd.println("cm");
  88.      lcd.setCursor(0,0);
  89.    lcd.print("2-4   meter  ");
  90.    if (Pos == minPos){
  91.    digitalWrite(led,HIGH);
  92.    
  93.    }else{
  94.    
  95.   digitalWrite (led,LOW);
  96.     Pos = 0;    
  97.     distance = (distance +1 );    
  98.    LastState = State;}
  99.    
  100.     }
  101.   }
  102.   LastState = State;}
(#) sargarigo válasza vyky hozzászólására (») Okt 30, 2018 /
 
Első kanyarban az encoder ne outputA és B legyen, hanem mondjuk encA, encB! Ez csak esztétika, de félrevezető. Aztán a led az output legyen, ha már kimenet (29. sor).
Nézem tovább.
Amúgy szerintem elég egy kapcsoló, és ha egyszer megnyomod akkor az egyik méret, ha mégegyszer akkor a másik, aztán a harmadik lenne. Egyszerűbbnek tűnik mint enkóderrel. Ellenben nem oldottad meg a prell kérdését, valamint ha nyomva tartod a kapcsolót, akkor folyamtosan ismételgeetve végre fogja hajtani a benne foglaltakat. Ezt tovább kell még gondolni!
A hozzászólás módosítva: Okt 30, 2018
(#) vyky válasza sargarigo hozzászólására (») Okt 30, 2018 /
 
Szia. A megnevezésed jogos Átírom,de a kapcsoló nem véletlen, mivel 3 kapcsoló lesz és mikor melyik van bekapcsolva azzal dolgozik. Az enkóder meg méri a távolságot,így annak maradnia kell.A prell még vissza van valóban
(#) sargarigo válasza vyky hozzászólására (») Okt 30, 2018 / 1
 
Még annyi, hogy a sok if {} helyett érdemesebb lenne így:
  1. void loop()
  2. {
  3.  if (kapcsolóA == LOW)
  4.    üzemmódA();
  5.  if (kapcsolóB == LOW)
  6.   üzemmódB();
  7.  if (kapcsolóC == LOW)
  8.   üzemmódC();
  9. }
  10. ...
  11.  
  12. // Első kapcsolóhoz tartozó dolgok
  13. void üzemmódA()
  14. {
  15. }
  16.  
  17. // Második kapcsolóhoz tartozó dolgok
  18. void üzemmódB()
  19. {
  20. }
  21.  
  22. ...


Sokkal áttekinthetőbb ha kiszervezed eljárásokba a hosszú és bonyolult dolgokat, ráadásul a vezérlő sem fog összekavarodni a sok feltétel miatt. Tudom, a vezérlő egyébként sem tenné, mindig a programozó kavarodik meg
(#) vyky válasza sargarigo hozzászólására (») Okt 30, 2018 /
 
Ez remek,köszönöm, Át is írom nyomban
(#) sargarigo válasza vyky hozzászólására (») Okt 30, 2018 /
 
Lássuk!
(#) vyky válasza sargarigo hozzászólására (») Okt 30, 2018 /
 
Valamiért a loop ban lévő uzemmodA re hibát ír ki ,hogy nincs deklarálva.miközben alatta ott a viod uzemmodA :S Pedig úgy írtam ahogy te mutattad,csak ékezet nélkül.
A hozzászólás módosítva: Okt 30, 2018
(#) vargham válasza vyky hozzászólására (») Okt 30, 2018 /
 
Idézet:
„alatta”

Alatta, vagyis utána, ezért fogalma sincsen róla. A loop elé írj ennyit:
  1. void uzemmodA();
Valamint kerüld az ékezetes karaktereket.
(#) vargham válasza sargarigo hozzászólására (») Okt 30, 2018 /
 
Plusz kérdés: Miért kell 3 kapcsoló? Már két kapcsolóval is 4 különböző működési módot tudsz beállítani.
(#) vyky válasza vargham hozzászólására (») Okt 30, 2018 /
 
Szia. Köszönöm a tanácsot,egyből nem kiabál miatta. Most a void uzemmodA -ra kiabál :S
Azért kell 3 kapcsoló mert menet közbeni rázkódásra is gondolok,nehogy átbillenjen.ez simán csak túlbiztosítás,
  1. Arduino: 1.8.5 (Windows XP), Alaplap:"Arduino/Genuino Uno"
  2.  
  3. majdnem:77: error: variable or field 'uzemmodB' declared void
  4.  
  5.     void uzemmodB{
  6.  
  7.          ^
  8.  
  9. majdnem:78: error: expected primary-expression before 'if'
  10.  
  11.      if (digitalRead(kapcsoloB)== LOW) {
  12.  
  13.      ^
  14.  
  15. majdnem:78: error: expected '}' before 'if'
  16.  
  17. exit status 1
  18. variable or field 'uzemmodB' declared void
  19.  
  20. Ennek a jelentésnek több információja lehetne
  21. a "Bővebb kimenet mutatása fordításkor"
  22. opció engedélyezésével a Fájl -> Beállítások-ban.
A hozzászólás módosítva: Okt 30, 2018
(#) vyky hozzászólása Okt 30, 2018 /
 
  1. #include <LiquidCrystal.h>
  2.  
  3. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  4. #define encoderA A2 //enkoder 1
  5.  #define encoderB A3 //enkoder 2
  6.  int kapcsoloA =6;//1,5-1,5méter kiosztás
  7.  int kapcsoloB =7;//2-2 méter kiosztás
  8.  int kapcsoloC =8;//2-4 méter kiosztás
  9.  int astate =0;
  10.  int bstate =0;
  11.  int cstate =0;
  12.  int led = 10;// pisztolyszelep
  13.  int Pos = 0;
  14.  int State;
  15.  int LastState;  
  16.  int minPos = 18;//ezt kellene beírni valahogy
  17.  int maxPos = 39;//és ezt is
  18. const float pi = 3.14;
  19. byte V = 1;
  20. const int R = 7;//kerék átmérő
  21. const int N = 22;//encodr osztása
  22. float distance = 0;
  23.  
  24. void setup(){
  25. lcd.begin(16,2);
  26. pinMode(kapcsoloA, INPUT_PULLUP);
  27. pinMode(kapcsoloB, INPUT_PULLUP);
  28. pinMode(kapcsoloC, INPUT_PULLUP);
  29. pinMode (led,INPUT);
  30.    pinMode (encoderA,INPUT);
  31.    pinMode (encoderB,INPUT);
  32.    digitalWrite(led,LOW);
  33.    lcd.begin(16 ,2);
  34.    lcd.print("Festőgép");
  35.    // Reads the initial state of the outputA
  36.    LastState = digitalRead(encoderA);  
  37.  
  38. }
  39. void loop() {
  40.    if (kapcsoloA == LOW){
  41.    void uzemmodA();
  42.    }
  43.  if (kapcsoloB == LOW){
  44.   void uzemmodB();
  45.   }
  46.  if (kapcsoloC == LOW){
  47.   void uzemmodC();
  48.   }
  49.      State = digitalRead(encoderA);
  50.    if (State != LastState){    
  51.      
  52.      if (digitalRead(encoderB) != State) {
  53.        Pos ++;
  54.      }
  55.      else {
  56.        Pos --;
  57.      
  58.    }
  59.          
  60.   LastState = State;}
  61. }
  62.   void uzemmodA(){
  63. if (digitalRead(kapcsoloA)== LOW) {
  64.      distance = Pos+(2*pi*R)/N;
  65.      lcd.setCursor(0,1);
  66.      lcd.print("ertek");
  67.      lcd.println(distance);
  68.      lcd.println("cm");
  69.      lcd.setCursor(0,0);
  70.    lcd.print("1.5-1.5 meter");
  71.    if (Pos == 8){
  72.    V^= 1;
  73.   digitalWrite (led,V);
  74.     Pos = 0;    
  75.     distance = (distance +1 );    
  76.    LastState = State;
  77.    }
  78. }
  79.     }
  80.  
  81.    void uzemmodB{
  82.     if (digitalRead(kapcsoloB)== LOW) {
  83.      distance = Pos+(2*pi*R)/N;
  84.      lcd.setCursor(0,1);
  85.      lcd.print("ertek");
  86.      lcd.println(distance);
  87.      lcd.println("cm");
  88.      lcd.setCursor(0,0);
  89.    lcd.print("2-2   meter  ");
  90.    if (Pos == 18){
  91.    V^= 1;
  92.   digitalWrite (led,V);
  93.     Pos = 0;    
  94.     distance = (distance +1 );    
  95.    LastState = State;}
  96.    
  97.     }
  98.    }
  99.    void uzemmodC{
  100.    if (digitalRead(kapcsoloC)== LOW) {
  101.      distance = Pos+(2*pi*R)/N;
  102.      lcd.setCursor(0,1);
  103.      lcd.print("ertek");
  104.      lcd.println(distance);
  105.      lcd.println("cm");
  106.      lcd.setCursor(0,0);
  107.    lcd.print("2-4   meter  ");
  108.    if (Pos == minPos){
  109.    digitalWrite(led,HIGH);
  110.    
  111.    }else{
  112.    
  113.   digitalWrite (led,LOW);
  114.     Pos = 0;    
  115.     distance = (distance +1 );    
  116.    LastState = State;}
  117.    
  118.     }
  119.   }

Eddig jutottam.
(#) sargarigo válasza vyky hozzászólására (») Okt 30, 2018 /
 
Nemnem!

A void azt jelenti hogy nincs visszatérési értéke a függvénynek! A függvény deklarációba kell, és csakis oda! Az if-ből szedd ki!
Meg kicsit szétkavartad a többit is. Amit írtam csak egy pszeudo-kód volt, hogy a működést szemléltessem. Ettől még van az arduinónak egyfajta szintatikája, ezt tartani kell.
Tehát:
  1. if (digitalRead(kapcsoloA) == LOW)
  2. {
  3.   uzemmodA();
  4. }
  5.  
  6. ...
  7. // valahol a loop-on kívül pedig
  8. void uzemmodA()
  9. {
  10.   // ide jön amit az A üzemmód előír
  11. }


Tehát a "void uzemmodA()" lesz a függvény, amit meghívsz. Ő az aki elvégzi a feladatot. Mindenhol máshol csak meghívod, mint bármelyik másik utasítást.
A hozzászólás módosítva: Okt 30, 2018
(#) vyky válasza sargarigo hozzászólására (») Okt 30, 2018 /
 
Most meg a loop-nál kiabál
  1. Arduino: 1.8.5 (Windows XP), Alaplap:"Arduino/Genuino Uno"
  2.  
  3. C:\Documents and Settings\Rendszergazda\Dokumentumok\Arduino\majdnem\majdnem.ino: In function 'void loop()':
  4.  
  5. majdnem:44: error: 'uzemmodB' was not declared in this scope
  6.  
  7.     uzemmodB();
  8.  
  9.              ^
  10.  
  11. majdnem:47: error: 'uzemmodC' was not declared in this scope
  12.  
  13.     uzemmodC();
  14.  
  15.              ^
  16.  
  17. C:\Documents and Settings\Rendszergazda\Dokumentumok\Arduino\majdnem\majdnem.ino: At global scope:
  18.  
  19. majdnem:81: error: variable or field 'uzemmodB' declared void
  20.  
  21.     void uzemmodB{
  22.  
  23.          ^
  24.  
  25. majdnem:82: error: expected primary-expression before 'if'
  26.  
  27.      if (digitalRead(kapcsoloB)== LOW) {
  28.  
  29.      ^
  30.  
  31. majdnem:82: error: expected '}' before 'if'
  32.  
  33. exit status 1
  34. 'uzemmodB' was not declared in this scope
  35.  
  36. Ennek a jelentésnek több információja lehetne
  37. a "Bővebb kimenet mutatása fordításkor"
  38. opció engedélyezésével a Fájl -> Beállítások-ban.
(#) sargarigo válasza vyky hozzászólására (») Okt 30, 2018 /
 
Ne kapkodj!
Nem kalapálunk a billentyűzettel, hanem átgondoljuk a dolgokat. Kódot mutass.
(#) vyky válasza sargarigo hozzászólására (») Okt 30, 2018 /
 
  1. #include <LiquidCrystal.h>
  2.  
  3. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  4. #define encoderA A2 //enkoder 1
  5.  #define encoderB A3 //enkoder 2
  6.  int kapcsoloA =6;//1,5-1,5méter kiosztás
  7.  int kapcsoloB =7;//2-2 méter kiosztás
  8.  int kapcsoloC =8;//2-4 méter kiosztás
  9.  int astate =0;
  10.  int bstate =0;
  11.  int cstate =0;
  12.  int led = 10;// pisztolyszelep
  13.  int Pos = 0;
  14.  int State;
  15.  int LastState;  
  16.  int minPos = 18;//ezt kellene beírni valahogy
  17.  int maxPos = 39;//és ezt is
  18. const float pi = 3.14;
  19. byte V = 1;
  20. const int R = 7;//kerék átmérő
  21. const int N = 22;//encodr osztása
  22. float distance = 0;
  23.  
  24. void setup(){
  25. lcd.begin(16,2);
  26. pinMode(kapcsoloA, INPUT_PULLUP);
  27. pinMode(kapcsoloB, INPUT_PULLUP);
  28. pinMode(kapcsoloC, INPUT_PULLUP);
  29. pinMode (led,INPUT);
  30.    pinMode (encoderA,INPUT);
  31.    pinMode (encoderB,INPUT);
  32.    digitalWrite(led,LOW);
  33.    lcd.begin(16 ,2);
  34.    lcd.print("Festőgép");
  35.    // Reads the initial state of the outputA
  36.    LastState = digitalRead(encoderA);  
  37.  
  38. }
  39. void loop() {
  40.    if (kapcsoloA == LOW){
  41.    uzemmodA();
  42.    }
  43.  if (kapcsoloB == LOW){
  44.    uzemmodB();
  45.   }
  46.  if (kapcsoloC == LOW){
  47.    uzemmodC();
  48.   }
  49.      State = digitalRead(encoderA);
  50.    if (State != LastState){    
  51.      
  52.      if (digitalRead(encoderB) != State) {
  53.        Pos ++;
  54.      }
  55.      else {
  56.        Pos --;
  57.      
  58.    }
  59.          
  60.   LastState = State;}
  61. }
  62.   void uzemmodA(){
  63. //if (digitalRead(kapcsoloA)== LOW) {
  64.      distance = Pos+(2*pi*R)/N;
  65.      lcd.setCursor(0,1);
  66.      lcd.print("ertek");
  67.      lcd.println(distance);
  68.      lcd.println("cm");
  69.      lcd.setCursor(0,0);
  70.    lcd.print("1.5-1.5 meter");
  71.    if (Pos == 8){
  72.    V^= 1;
  73.   digitalWrite (led,V);
  74.     Pos = 0;    
  75.     distance = (distance +1 );    
  76.    LastState = State;
  77.    }
  78. }
  79.   //  }
  80.  
  81.    void uzemmodB{
  82.     //if (digitalRead(kapcsoloB)== LOW) {
  83.      distance = Pos+(2*pi*R)/N;
  84.      lcd.setCursor(0,1);
  85.      lcd.print("ertek");
  86.      lcd.println(distance);
  87.      lcd.println("cm");
  88.      lcd.setCursor(0,0);
  89.    lcd.print("2-2   meter  ");
  90.    if (Pos == 18){
  91.    V^= 1;
  92.   digitalWrite (led,V);
  93.     Pos = 0;    
  94.     distance = (distance +1 );    
  95.    LastState = State;}
  96.    
  97.     }
  98.    //}
  99.    void uzemmodC{
  100.    //if (digitalRead(kapcsoloC)== LOW) {
  101.      distance = Pos+(2*pi*R)/N;
  102.      lcd.setCursor(0,1);
  103.      lcd.print("ertek");
  104.      lcd.println(distance);
  105.      lcd.println("cm");
  106.      lcd.setCursor(0,0);
  107.    lcd.print("2-4   meter  ");
  108.    if (Pos == minPos){
  109.    digitalWrite(led,HIGH);
  110.    
  111.    }else{
  112.    
  113.   digitalWrite (led,LOW);
  114.     Pos = 0;    
  115.     distance = (distance +1 );    
  116.    LastState = State;}
  117.    
  118.     }
  119.   //}
(#) sargarigo válasza vyky hozzászólására (») Okt 30, 2018 /
 
Nem javítottad ki az if-et ahogy mondtam. Most csak annyit csináltál, hogy megnézted a kapcsoloA értékét (6), hogy ez nullával egyenlő-e. Naná hogy nem. De mindegy is, mert értelmetlen. Javítsd ahogy fentebb írtam. A mi dolgunk az, hogy a 6-os láb feszültségét hasonlítjuk össze a nullával, tehát le van-e húzva (low). De ezt a digitalRead() függvény csinálja, és magától nem fogja tudni. Ezért mondom hogy ne kapkodj!
A hozzászólás módosítva: Okt 30, 2018
Következő: »»   483 / 854
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem