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   279 / 864
(#) pjg válasza jocoka hozzászólására (») Okt 17, 2016 /
 
Nem találja a MySensor.h fájlt.
(#) jocoka válasza Gabó hozzászólására (») Okt 17, 2016 /
 
Köszönöm megnézem azzal a fordítóval amit írtál.
de csak holnap tudom.
Köszönöm az ötletet.
A hozzászólás módosítva: Okt 17, 2016
(#) jocoka válasza pjg hozzászólására (») Okt 17, 2016 /
 
Igen de fel van telepítve meg bele is másoltam a libraries könyvtárba is.
(#) pjg válasza jocoka hozzászólására (») Okt 17, 2016 /
 
Mégis hiányolja.
Idézet:
„fatal error: MySensor.h: No such file or directory”
A hozzászólás módosítva: Okt 17, 2016
(#) jocoka hozzászólása Okt 17, 2016 /
 
Holnap lefényképezem a hibákat és felrakom.
(#) jocoka válasza pjg hozzászólására (») Okt 17, 2016 /
 
Ez az amit nem értek én sem.
(#) zsolt58 hozzászólása Okt 17, 2016 /
 
Hello.
Ti milyen wifi modult ajánlatok arduinora?
Üdv.
(#) atus1981 válasza atus1981 hozzászólására (») Okt 17, 2016 /
 
Senki?
(#) sany válasza jocoka hozzászólására (») Okt 17, 2016 /
 
Nem írtad el véletlenül a MySensor.h nevét a programkódban?
(#) Kovidivi válasza atus1981 hozzászólására (») Okt 17, 2016 / 1
 
Lehet, főleg ha magad írod meg azt is. Másik: google segítségével szétnéztél már? Ha komolyan érdekelne a kérdés, akkor igen. Ha ott nem találtál megoldást, akkor valószínűleg nem foglalkozott ilyennel senki. Miért is tenné, hiszen a csip nem lesz támogatott Arduino alatt, csak ha ismét beletúrsz rendesen, de a 100% kompatibilitást el lehet felejteni. Ennyi erővel egyszerűbb a digitalwrite() fv. helyett megtanulni hogy miért kell portd=(1<<pd3); . És mehet a nyers programozás, ami mindog azt fogja csinálni, amit te mondasz neki, plusz bootloader sem kell hozzá.
Őszintén, én Arduinot csak arra használok, ha ki akarok próbálni pl. egy TFT kijelzőt, vagy 2.4GHz-es adó-vevő párost, de ha élesben kell, akkor vagy keresek egy lib-et, azt átbogarászom, hogy tudjam mi mit csinál, vagy fogok egy Arduinos esetleg más forrásból származó lib-et, és kiveszem belőle ami kell. Ezen kívül az Ardu nem sokra jó.
(#) Kera_Will válasza sany hozzászólására (») Okt 17, 2016 /
 
kövesd a linket : link1
közel 6 vagy több éves írások ...
másik : masik link
... stb
Bővebben: Link
(#) attika válasza zsolt58 hozzászólására (») Okt 17, 2016 / 1
 
(#) Kera_Will válasza atus1981 hozzászólására (») Okt 17, 2016 /
 
(#) andykaaa válasza atus1981 hozzászólására (») Okt 18, 2016 /
 
ATmega644 - Itten megtalalod a „Sanguino”-t, meg a tobbit is
A hagyomanyos ISP -vel mukszi a Sanguino, nekem ment
Itt van a modszer Bővebben: Link
A hozzászólás módosítva: Okt 18, 2016
(#) wifi196 válasza andykaaa hozzászólására (») Okt 18, 2016 /
 
Bekötöttem így, viszont semmi nem változott. Továbbra is bármerre tekerem csak növeli az értéket.
Megpróbáltam már másikkal is (ugyan ilyen fajta), nem e csak ennél van, de ott is ezt csinálja.
A hozzászólás módosítva: Okt 18, 2016

gfsx.jpg
    
(#) wifi196 válasza Gabó hozzászólására (») Okt 18, 2016 /
 
Ugyan az a helyzet, csak növeli az értéket!
(#) kapu48 válasza pjg hozzászólására (») Okt 18, 2016 /
 
Kimaradt a kodból az elmozdulás vizsgálata:
  1. int val;
  2. int encoder0PinA = 3;
  3. int encoder0PinB = 4;
  4. int encoder0Pos = 0;
  5. int encoder0PinALast = LOW;
  6. int n = LOW;
  7.  
  8. void setup() {
  9.   pinMode (encoder0PinA,INPUT_PULLUP);
  10.   pinMode (encoder0PinB,INPUT_PULLUP);
  11.   Serial.begin (9600);
  12. }
  13.  
  14. void loop() {
  15.   n = digitalRead(encoder0PinA);
  16.   if (n != encoder0PinALast) {    // Ha történt elmozdulás?
  17.     if ((encoder0PinALast == LOW) && (n == HIGH)) {
  18.       if (digitalRead(encoder0PinB) == LOW) {
  19.         encoder0Pos--;
  20.       } else {
  21.         encoder0Pos++;
  22.       }
  23.       Serial.print (encoder0Pos);
  24.       Serial.print ("/");
  25.     }
  26.     encoder0PinALast = n;
  27.   }
  28. }
(#) wifi196 válasza kapu48 hozzászólására (») Okt 18, 2016 /
 
Sajnos ugyan az a helyzet! :S Nem értem egyszerűen miért lehet ez...
(#) andykaaa válasza wifi196 hozzászólására (») Okt 18, 2016 /
 
Nem 47K kell oda, hanem 4K7.
(#) wifi196 válasza andykaaa hozzászólására (») Okt 18, 2016 /
 
Próbáltam 10K-s ellenállással is, legalábbis azt olvastam, hogy 10-47K-ig válasszunk, de sajnos a hiba megmaradt!í
(#) (Felhasználó 120038) válasza wifi196 hozzászólására (») Okt 18, 2016 /
 
  1. void loop()
  2. {
  3.   n = digitalRead(encoder0PinA);
  4. //Ide tegyél egy serialprintln-t ami az n értékét kiírja. Nézd meg, hogy legalább az stimmel-e
  5.  
  6.   if (n != encoder0PinALast)  // Ha történt elmozdulás? //Ezt értem
  7.         {    
  8. //Ez az if nem tetszik egyelőre nekem.
  9. //Ok, hogy elsőre a encoder0PinALast==Low, de második nekifutáskor nem lehet, hogy encoder0PinALast==HIGHT? (vagy n==LOW) ekkor ez sosem fog lefutni.
  10.  
  11.               if ((encoder0PinALast == LOW) && (n == HIGH))
  12.                      {
  13.                          if (digitalRead(encoder0PinB) == LOW)
  14.                                 {
  15.                                      encoder0Pos--;
  16.                                  }
  17.                                   else
  18.                                   {
  19.                                      encoder0Pos++;
  20.                                    }
  21.                       Serial.print (encoder0Pos);
  22.                       Serial.print ("/");
  23.                      }
  24.          encoder0PinALast = n;
  25.        }
  26. }
(#) (Felhasználó 120038) válasza (Felhasználó 120038) hozzászólására (») Okt 18, 2016 /
 
Lehet félre értem a kódot, de ha az "encoder0PinALast = n" sor miatt ha a változás megtörtént, akkor az encoder0PinALast = HIGH lesz, mert "n != encoder0PinALast" csak akkor fut le, ha a kezdeti encoder0PinALast==LOW -ról HIGH-ra vált.

Ez a feltétel teljesül, majd a végén átadod ezt az n értékét az encoder0PinALast-nak , ami HIGH lesz, ezért a fentebb kifogásolt if szerkezet feltétele nem fut le.
A hozzászólás módosítva: Okt 18, 2016
(#) (Felhasználó 120038) válasza (Felhasználó 120038) hozzászólására (») Okt 18, 2016 /
 
Csak zárójeles megjegyzés:

Nem lenne jobb interrupt-tal megoldani ezt? Ott van lehetőség rögtön figyeltetni, hogy a láb magasról váltott alacsonyra, vagy épp fordítva. Mindkét esetnek egy-egy külön függvény és annyi.
(#) wifi196 válasza (Felhasználó 120038) hozzászólására (») Okt 18, 2016 /
 
Nekem csak az a furcsa, hogy külföldi fórumon beszéltem egy sráccal és azt mondta neki egyből ment az alábbi kód:

  1. #include <MIDI_controller.h>
  2.  
  3. const static byte Channel = 1;
  4. const static byte Controller = 0x14;
  5.  
  6. RotaryEncoder enc(2, 3, Controller, 1, 1, NORMAL_ENCODER, POS1_NEG127);
  7.  
  8. void setup() {
  9.   setupMidi(13, 10); // Setup the MIDI communication, with an LED on pin 13, and a delay of 10ms after every message.
  10.   delay(1000); // Wait a second...
  11. }
  12.  
  13. void loop() {
  14.   enc.refresh();
  15. }


A srác, amúgy ezt a midit csinálta, szóval biztos érti a dolgát.
(#) Kera_Will válasza wifi196 hozzászólására (») Okt 18, 2016 /
 
(#) (Felhasználó 120038) válasza wifi196 hozzászólására (») Okt 18, 2016 /
 
Tényleg nem értem már ezt.

Nem lehet szerintem egyik kód sem jó azért amit írtam. Nem kell bele az a && - if feltétel szerintem, vagy ha igen, akkor kell egy másik is.

Nem elég erre az, hogy változást Figyelünk egy lábon, és ha az bekövetkezik, akkor olvassuk a másik lábat ami ha magas akkor + ha alacsony akkor -?

Ha ez igaz, akkor az is a gond, hogy az első kódnál a figyelt lábak a setup-ban fel vannak húzva, az enkóder nem tudja lehúzni 0-ra. (ebben nem vagyok biztos) Ezért csak a felfelé tekerés volt megengedve szerintem.
lopott kód:
  1. int val;
  2. int encoder0PinA = 3; //Remélem így van bekötve
  3. int encoder0PinB = 4;
  4. int encoder0Pos = 0;
  5. int encoder0PinALast = LOW;
  6. int n = LOW;
  7.  
  8. void setup() {
  9. pinMode (encoder0PinA,INPUT); //Csak ennyi a változás, hogy nem húztam fel
  10. pinMode (encoder0PinB,INPUT);//Csak ennyi a változás, hogy nem húztam fel
  11. Serial.begin (9600);
  12. }
  13.  
  14. void loop() {
  15. n = digitalRead(encoder0PinA);
  16.  
  17. if (n != encoder0PinALast) //Van változás
  18.    {
  19.      if (digitalRead(encoder0PinB) == LOW)
  20.          {
  21.                encoder0Pos--; //Van változás, és a másik figyelt lábon alacsony az érték
  22.           }
  23.          else
  24.          {
  25.           encoder0Pos++; /Van változás, és a másik figyelt lábon magas az érték
  26.          }
  27.        Serial.print (encoder0Pos);
  28.        Serial.print ("/");
  29.       encoder0PinALast = n;
  30.     }
  31.  
  32. }


Próbáld ki.
A hozzászólás módosítva: Okt 18, 2016
(#) wifi196 válasza (Felhasználó 120038) hozzászólására (») Okt 18, 2016 /
 
Sajnos ez sem működik, hiba ugyan az... Nem lehet, hogy vagy a vezérlő vagy az encoder (bár kipróbáltam egy másikkal is) rossz, mert ez már nem igaz, hogy semmivel se működik.
(#) (Felhasználó 120038) válasza wifi196 hozzászólására (») Okt 18, 2016 /
 
Nyugalom, lehet a kódom még nem jó, sajnos nincs itthon ilyenem, nem tudom kipróbálni.

Csak felfelé megy?
(#) (Felhasználó 120038) válasza (Felhasználó 120038) hozzászólására (») Okt 18, 2016 /
 
A kódokkal van gond.

Az is fontos, hogy a változás milyen irányú volt. Ez nincs figyelembe véve sehol sem.
A hozzászólás módosítva: Okt 18, 2016
(#) wifi196 válasza (Felhasználó 120038) hozzászólására (») Okt 18, 2016 /
 
Köszönöm, hogy segítesz és a többieknek is!
A legutóbbi kódod alapján most lefele megy csak!
Következő: »»   279 / 864
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