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   351 / 852
(#) MATA válasza icserny hozzászólására (») Jún 1, 2017 /
 
Köszönöm ennek a telepítését hogyan lehetne megoldani?
(#) kapu48 válasza MATA hozzászólására (») Jún 1, 2017 /
 
(#) MATA válasza kapu48 hozzászólására (») Jún 1, 2017 /
 
Köszönöm szépen!
(#) gerleimarci hozzászólása Jún 1, 2017 /
 
Üdv megint!
Most egy bluetooth joystick app példaprogramjának bővítésével foglalatoskodom. Szeretném ha kétféle módot is tudna, de véletlenszerűen(vagy csak nekem tűnik annak, de a lényeg, hogy sűrűn) elfelejti, hogy átkapcsoltam 1-es módba, visszakapcsol 0-ásba és a display statusnak is xxxx-et ír, de a led továbbra is világít.
  1. int mode = 0;
  2. int left = 0;
  3. int rigt = 0;
  4. int en1 = 5;
  5. int en2 = 6;
  6. int out1 = 7;
  7. int out2 = 8;
  8. int out3 = 9;
  9. int out4 = 10;
  10.  
  11. #include "SoftwareSerial.h"
  12.  
  13. #define    STX          0x02
  14. #define    ETX          0x03
  15. #define    ledPin       13
  16. #define    SLOW         750                            // Datafields refresh rate (ms)
  17. #define    FAST         250                             // Datafields refresh rate (ms)
  18.  
  19. byte cmd[8] = {0, 0, 0, 0, 0, 0, 0, 0};                 // bytes received
  20. byte buttonStatus = 0;                                  // first Byte sent to Android device
  21. long previousMillis = 0;                                // will store last time Buttons status was updated
  22. long sendInterval = SLOW;                               // interval between Buttons status transmission (milliseconds)
  23. String displayStatus = "xxxx";                          // message to Android device
  24.  
  25. void setup()  {
  26.   Serial.begin(9600);                                // 57600 = max value for softserial
  27.   pinMode(ledPin, OUTPUT);
  28.   pinMode(en1, OUTPUT);
  29.   pinMode(en2, OUTPUT);
  30.   pinMode(out1, OUTPUT);
  31.   pinMode(out2, OUTPUT);
  32.   pinMode(out3, OUTPUT);
  33.   pinMode(out4, OUTPUT);
  34.  
  35.   while (Serial.available())  Serial.read();        // empty RX buffer
  36. }
  37.  
  38. void loop() {
  39.   if (Serial.available())  {                          // data received from smartphone
  40.     delay(2);
  41.     cmd[0] =  Serial.read();
  42.     if (cmd[0] == STX)  {
  43.       int i = 1;
  44.       while (Serial.available())  {
  45.         delay(1);
  46.         cmd[i] = Serial.read();
  47.         if (cmd[i] > 127 || i > 7)                 break; // Communication error
  48.         if ((cmd[i] == ETX) && (i == 2 || i == 7))   break; // Button or Joystick data
  49.         i++;
  50.       }
  51.       if     (i == 2)          getButtonState(cmd[1]);  // 3 Bytes  ex: < STX "C" ETX >
  52.       else if (i == 7)          getJoystickState(cmd);  // 6 Bytes  ex: < STX "200" "180" ETX >
  53.     }
  54.   }
  55.   sendBlueToothData();
  56. }
  57.  
  58. void sendBlueToothData()  {
  59.   static long previousMillis = 0;
  60.   long currentMillis = millis();
  61.   if (currentMillis - previousMillis > sendInterval) {  // send data back to smartphone
  62.     previousMillis = currentMillis;
  63.  
  64.     // Data frame transmitted back from Arduino to Android device:
  65.     // < 0X02   Buttons state   0X01   DataField#1   0x04   DataField#2   0x05   DataField#3    0x03 >
  66.     // < 0X02      "01011"      0X01     "120.00"    0x04     "-4500"     0x05  "Motor enabled" 0x03 >    // example
  67.  
  68.     Serial.print((char)STX);                                             // Start of Transmission
  69.     Serial.print(getButtonStatusString());  Serial.print((char)0x1);   // buttons status feedback
  70.     Serial.print(GetdataInt1());            Serial.print((char)0x4);   // datafield #1
  71.     Serial.print(GetdataFloat2());          Serial.print((char)0x5);   // datafield #2
  72.     Serial.print(displayStatus);                                         // datafield #3
  73.     Serial.print((char)ETX);                                             // End of Transmission
  74.   }
  75. }
  76.  
  77. String getButtonStatusString()  {
  78.   String bStatus = "";
  79.   for (int i = 0; i < 6; i++)  {
  80.     if (buttonStatus & (B100000 >> i))      bStatus += "1";
  81.     else                                  bStatus += "0";
  82.   }
  83.   return bStatus;
  84. }
  85.  
  86. int GetdataInt1()  {              // Data dummy values sent to Android device for demo purpose
  87.   static int i = -30;             // Replace with your own code
  88.   i ++;
  89.   if (i > 0)    i = -30;
  90.   return i;
  91. }
  92.  
  93. float GetdataFloat2()  {           // Data dummy values sent to Android device for demo purpose
  94.   static float i = 50;             // Replace with your own code
  95.   i -= .5;
  96.   if (i < -50)    i = 50;
  97.   return i;
  98. }
  99.  
  100. void getJoystickState(byte data[8])    {
  101.   int joyX = (data[1] - 48) * 100 + (data[2] - 48) * 10 + (data[3] - 48); // obtain the Int from the ASCII representation
  102.   int joyY = (data[4] - 48) * 100 + (data[5] - 48) * 10 + (data[6] - 48);
  103.   joyX = joyX - 200;                                                  // Offset to avoid
  104.   joyY = joyY - 200;                                                  // transmitting negative numbers
  105.  
  106.   if (joyX < -100 || joyX > 100 || joyY < -100 || joyY > 100)     return; // commmunication error
  107.  
  108.   // Your code here ...
  109.   switch (mode) {
  110.     case 0:
  111.       if (joyY > 0)
  112.       {
  113.         digitalWrite(out1, HIGH);
  114.         digitalWrite(out2, LOW);
  115.         digitalWrite(out3, HIGH);
  116.         digitalWrite(out4, LOW);
  117.       }
  118.       else
  119.       {
  120.         if (joyY < 0)
  121.         {
  122.           digitalWrite(out1, LOW);
  123.           digitalWrite(out3, LOW);
  124.           digitalWrite(out2, HIGH);
  125.           digitalWrite(out4, HIGH);
  126.         }
  127.         else
  128.         {
  129.           digitalWrite(out1, HIGH);
  130.           digitalWrite(out3, HIGH);
  131.           digitalWrite(out2, HIGH);
  132.           digitalWrite(out4, HIGH);
  133.         }
  134.       }
  135.       if (joyX > 0)
  136.       {
  137.         analogWrite(en1, map(abs(joyY), 0, 100, 0, 255));
  138.         analogWrite(en2, map(abs(joyY), 0, 100, 0, 255) -  map(abs(joyX), 0, 100, 0, map(abs(joyY), 0, 100, 0, 255)));
  139.       }
  140.       else
  141.       {
  142.         if (joyX < 0)
  143.         {
  144.           analogWrite(en2, map(abs(joyY), 0, 100, 0, 255));
  145.           analogWrite(en1, map(abs(joyY), 0, 100, 0, 255) -  map(abs(joyX), 0, 100, 0, map(abs(joyY), 0, 100, 0, 255)));
  146.         }
  147.         else
  148.         {
  149.           analogWrite(en1, map(abs(joyY), 0, 100, 0, 255));
  150.           analogWrite(en2, map(abs(joyY), 0, 100, 0, 255));
  151.         }
  152.       }
  153.       break;
  154.  
  155.     case 1:
  156.       if (joyY > 0)
  157.       {
  158.         if (joyX < 0)
  159.         {
  160.           if (joyX > -50)
  161.           {
  162.             digitalWrite(out1, HIGH);
  163.             digitalWrite(out2, LOW);
  164.             digitalWrite(out3, HIGH);
  165.             digitalWrite(out4, LOW);
  166.             analogWrite(en1, map(abs(joyY), 0, 100, 0, 255) -  map(abs(joyX), 0, 50, 0, map(abs(joyY), 0, 100, 0, 255)));
  167.             analogWrite(en2, map(abs(joyY), 0, 100, 0, 255));
  168.           }
  169.           else
  170.           {
  171.             digitalWrite(out1, LOW);
  172.             digitalWrite(out2, HIGH);
  173.             digitalWrite(out3, HIGH);
  174.             digitalWrite(out4, LOW);
  175.             analogWrite(en1, map(abs(joyX), 50, 100, 0, map(abs(joyY), 0, 100, 0, 255)));
  176.             analogWrite(en2, map(abs(joyY), 0, 100, 0, 255));
  177.           }
  178.         }
  179.         else
  180.         {
  181.           if (joyX > 0)
  182.           {
  183.             if (joyX < 50)
  184.             {
  185.               digitalWrite(out1, HIGH);
  186.               digitalWrite(out2, LOW);
  187.               digitalWrite(out3, HIGH);
  188.               digitalWrite(out4, LOW);
  189.               analogWrite(en2, map(abs(joyY), 0, 100, 0, 255) -  map(abs(joyX), 0, 50, 0, map(abs(joyY), 0, 100, 0, 255)));
  190.               analogWrite(en1, map(abs(joyY), 0, 100, 0, 255));
  191.             }
  192.             else
  193.             {
  194.               digitalWrite(out1, HIGH);
  195.               digitalWrite(out2, LOW);
  196.               digitalWrite(out3, LOW);
  197.               digitalWrite(out4, HIGH);
  198.               analogWrite(en2, map(abs(joyX), 50, 100, 0, map(abs(joyY), 0, 100, 0, 255)));
  199.               analogWrite(en1, map(abs(joyY), 0, 100, 0, 255));
  200.             }
  201.           }
  202.           else
  203.           {
  204.             digitalWrite(out1, HIGH);
  205.             digitalWrite(out2, LOW);
  206.             digitalWrite(out3, HIGH);
  207.             digitalWrite(out4, LOW);
  208.             analogWrite(en1, map(abs(joyY), 0, 100, 0, 255));
  209.             analogWrite(en2, map(abs(joyY), 0, 100, 0, 255));
  210.           }
  211.         }
  212.  
  213.  
  214.       }
  215.       else
  216.       {
  217.         if (joyY < 0)
  218.         {
  219.           if (joyX < 0)
  220.           {
  221.             if (joyX > -50)
  222.             {
  223.               digitalWrite(out1, LOW);
  224.               digitalWrite(out2, HIGH);
  225.               digitalWrite(out3, LOW);
  226.               digitalWrite(out4, HIGH);
  227.               analogWrite(en1, map(abs(joyY), 0, 100, 0, 255) -  map(abs(joyX), 0, 50, 0, map(abs(joyY), 0, 100, 0, 255)));
  228.               analogWrite(en2, map(abs(joyY), 0, 100, 0, 255));
  229.             }
  230.             else
  231.             {
  232.               digitalWrite(out1, HIGH);
  233.               digitalWrite(out2, LOW);
  234.               digitalWrite(out3, LOW);
  235.               digitalWrite(out4, HIGH);
  236.               analogWrite(en1, map(abs(joyX), 50, 100, 0, map(abs(joyY), 0, 100, 0, 255)));
  237.               analogWrite(en2, map(abs(joyY), 0, 100, 0, 255));
  238.             }
  239.           }
  240.           else
  241.           {
  242.             if (joyX > 0)
  243.             {
  244.               if (joyX < 50)
  245.               {
  246.                 digitalWrite(out1, LOW);
  247.                 digitalWrite(out2, HIGH);
  248.                 digitalWrite(out3, LOW);
  249.                 digitalWrite(out4, HIGH);
  250.                 analogWrite(en2, map(abs(joyY), 0, 100, 0, 255) -  map(abs(joyX), 0, 50, 0, map(abs(joyY), 0, 100, 0, 255)));
  251.                 analogWrite(en1, map(abs(joyY), 0, 100, 0, 255));
  252.               }
  253.               else
  254.               {
  255.                 digitalWrite(out1, LOW);
  256.                 digitalWrite(out2, HIGH);
  257.                 digitalWrite(out3, HIGH);
  258.                 digitalWrite(out4, LOW);
  259.                 analogWrite(en2, map(abs(joyX), 50, 100, 0, map(abs(joyY), 0, 100, 0, 255)));
  260.                 analogWrite(en1, map(abs(joyY), 0, 100, 0, 255));
  261.               }
  262.             }
  263.             else
  264.             {
  265.               digitalWrite(out1, LOW);
  266.               digitalWrite(out2, HIGH);
  267.               digitalWrite(out3, LOW);
  268.               digitalWrite(out4, HIGH);
  269.               analogWrite(en1, map(abs(joyY), 0, 100, 0, 255));
  270.               analogWrite(en2, map(abs(joyY), 0, 100, 0, 255));
  271.             }
  272.           }
  273.  
  274.         }
  275.         else
  276.         {
  277.           digitalWrite(out1, HIGH);
  278.           digitalWrite(out3, HIGH);
  279.           digitalWrite(out2, HIGH);
  280.           digitalWrite(out4, HIGH);
  281.         }
  282.       }
  283.  
  284.       break;
  285.  
  286.   }
  287. }
  288.  
  289.  
  290. void getButtonState(int bStatus)  {
  291.   switch (bStatus) {
  292.     // -----------------  BUTTON #1  -----------------------
  293.     case 'A':
  294.       buttonStatus |= B000001;        // ON
  295.  
  296.       // your code...
  297.       displayStatus = "LED <ON>";
  298.  
  299.       digitalWrite(ledPin, HIGH);
  300.       mode = 1;
  301.       break;
  302.     case 'B':
  303.       buttonStatus &= B111110;        // OFF
  304.       // your code...
  305.       displayStatus = "LED <OFF>";
  306.  
  307.       digitalWrite(ledPin, LOW);
  308.       mode = 0;
  309.       break;
  310.  
  311.     // -----------------  BUTTON #2  -----------------------
  312.     case 'C':
  313.       buttonStatus |= B000010;        // ON
  314.  
  315.       // your code...
  316.       displayStatus = "Button2 <ON>";
  317.  
  318.       break;
  319.     case 'D':
  320.       buttonStatus &= B111101;        // OFF
  321.       // your code...
  322.       displayStatus = "Button2 <OFF>";
  323.       break;
  324.  
  325.     // -----------------  BUTTON #3  -----------------------
  326.     case 'E':
  327.       buttonStatus |= B000100;        // ON
  328.  
  329.       // your code...
  330.       displayStatus = "Motor #1 enabled"; // Demo text message
  331.  
  332.       break;
  333.     case 'F':
  334.       buttonStatus &= B111011;      // OFF
  335.  
  336.       // your code...
  337.       displayStatus = "Motor #1 stopped";
  338.  
  339.       break;
  340.  
  341.     // -----------------  BUTTON #4  -----------------------
  342.     case 'G':
  343.       buttonStatus |= B001000;       // ON
  344.  
  345.       // your code...
  346.       displayStatus = "Datafield update <FAST>";
  347.  
  348.       sendInterval = FAST;
  349.       break;
  350.     case 'H':
  351.       buttonStatus &= B110111;    // OFF
  352.  
  353.       // your code...
  354.       displayStatus = "Datafield update <SLOW>";
  355.  
  356.       sendInterval = SLOW;
  357.       break;
  358.  
  359.     // -----------------  BUTTON #5  -----------------------
  360.     case 'I':           // configured as momentary button
  361.       //      buttonStatus |= B010000;        // ON
  362.  
  363.       // your code...
  364.       displayStatus = "Button5: <pushed>";
  365.       break;
  366.     //   case 'J':
  367.     //     buttonStatus &= B101111;        // OFF
  368.     //     // your code...
  369.     //     break;
  370.  
  371.     // -----------------  BUTTON #6  -----------------------
  372.     case 'K':
  373.       buttonStatus |= B100000;        // ON
  374.  
  375.       // your code...
  376.       displayStatus = "Button6 <ON>"; // Demo text message
  377.       break;
  378.     case 'L':
  379.       buttonStatus &= B011111;        // OFF
  380.  
  381.       // your code...
  382.       displayStatus = "Button6 <OFF>";
  383.       break;
  384.   }
  385.   // ---------------------------------------------------------------
  386. }
(#) KoblogPerGyok válasza gerleimarci hozzászólására (») Jún 1, 2017 /
 
Megmondom őszintén nem teljesen értem a kódodat.

Ez azért lehet, mert nem kicsi!

Ezt nem értem pontosan: 290. sortól:

  1.  
  2. void getButtonState(int bStatus)  {
  3.   switch (bStatus) {
  4.     // -----------------  BUTTON #1  -----------------------
  5.     case 'A':
  6.       buttonStatus |= B000001; 



Ez egy Int típust kér, azonban mikor meghívod akkor ott byte típust adsz meg. Lehet ez gondot okoz!

Egy int típust lehet szimpla 'A'-vá konvertálni? Az több mint 1 byte. Gondolom az ascii kódját akarod megkapni, de ezt neked kell jobban átlátni.
A hozzászólás módosítva: Jún 1, 2017
(#) gerleimarci válasza KoblogPerGyok hozzászólására (») Jún 1, 2017 /
 
Szerintem meg van a baj, resetel az arduino. Amikor nem adok a motoroknak tápot, akkor tökéletesen megy, ha rákötöm a dupla H hidat az akksira, akkor ahogy egy kicsit nagyobb áramot kap valamelyik motor, akkor resetel és ezt produkálja. Az arduino külön tápot kap, és a modulon van galvanikus leválasztás is.
(#) KoblogPerGyok válasza gerleimarci hozzászólására (») Jún 1, 2017 /
 
Az baj...

Az Arduino és a driver logikája közös Földön van?
(#) brumbrus hozzászólása Jún 1, 2017 /
 
Üdv!
Valakinek van ötlete, hogy hogyan lehet ezt a hibaüzenetet megoldani:
  1. Arduino: 1.6.5 (Windows 8.1), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"
  2.  
  3. WARNING: library PZEM004T claims to run on [avr] architecture(s) and may be incompatible with your current board which runs on [esp8266] architecture(s).
  4.  
  5.  
  6.  
  7. C:\Program Files\Arduino\libraries\PZEM004T\PZEM004T.cpp: In member function 'bool PZEM004T::recieve(uint8_t, uint8_t*)':
  8. C:\Program Files\Arduino\libraries\PZEM004T\PZEM004T.cpp:137:37: error: 'class SoftwareSerial' has no member named 'listen'
  9.          ((SoftwareSerial *)serial)->listen();
  10.                                      ^
  11. Hiba a fordítás során.
(#) gerleimarci válasza KoblogPerGyok hozzászólására (») Jún 1, 2017 /
 
próbáltam úgy is, de nem megy.

Nem is resetelődik, akkor villogna a 13-as lábon a led. Valahogy "meghülyül", már most olyat is produkál, hogy miután ez megtörténik vele, az után csak 0 és 100%-os PWM-et ad ki, az irányváltás mégy megy rajta ilyenkor, de miután manuálisan resetelem, utána minden megy rendben a következő nagyobb áraminpulzusig.
A hozzászólás módosítva: Jún 1, 2017
(#) nedudgi válasza brumbrus hozzászólására (») Jún 1, 2017 /
 
Ott írja, hogy a PZEM004 AVR architektúrára van írva, inkompatilis az ESP-12E modullal.
(#) brumbrus válasza nedudgi hozzászólására (») Jún 1, 2017 /
 
De neki is összejött(Bővebben: Link).

Ráadásul azt írja, hogy inkompatibilis LEHET:
  1. FIGYELEM: A(z) PZEM004T könyvtár (avr) architektúrán való futást igényel és inkompatibilis lehet a jelenlegi alaplapoddal, ami (esp8266) architektúrát futtat.
  2. C:\Program Files\Arduino\libraries\PZEM004T\PZEM004T.cpp: In member function 'bool PZEM004T::recieve(uint8_t, uint8_t*)':
  3.  
  4. C:\Program Files\Arduino\libraries\PZEM004T\PZEM004T.cpp:137:37: error: 'class SoftwareSerial' has no member named 'listen'
  5.  
  6.          ((SoftwareSerial *)serial)->listen();


Valamit a SoftwareSeriallal vacakol, de nem értek hozzá. Tudnál segíteni?
Köszönöm!
A hozzászólás módosítva: Jún 1, 2017
(#) orifab hozzászólása Jún 1, 2017 /
 
Sziasztok!

Arduinoval párosított már valaki kapu távirányítót?
Nekem egy MOOVO 433.92Mhz -es ugrókódos távirányítóm van, és van rajta kihasználatlan gomb... Gondoltam rátennék valami. Már ha megoldható.

Köszi
(#) david10 hozzászólása Jún 2, 2017 /
 
Sziasztok, nem tudom, hogy jó helyre írok-e, de volna egy kérdésem:
Milyen mikrokontrollert ajánlotok, amihez van Arduino bootloader, megtud hajtani egy ST7796S típusu kijelzőt SPI-n keresztül, tudjon IR ledet meghajtani és lehetőleg legeyen rajta USB támogatás és minimum 64KB Flash memória?
A választ előre is köszönöm!
(#) KoblogPerGyok válasza david10 hozzászólására (») Jún 2, 2017 / 1
 
Szia!

Esetleg:
(72MHz, 64k)


Bővebben: Link

Ezt lehet Arduino IDE-vel programozni:

https://core-electronics.com.au/tutorials/using-teensy-with-arduino-ide.html

Azt nem tudom, hogy mennyire kompatibilisek a lib-ek.
Az viszont TUTI gond, hogy a 3.2-es 3.3V-os! Sok Arduinós kiegészítőhöz szintillesztő kell majd.

Ha ez nem ok, akkor gondolkodhatsz az Arduino-hoz external rammal is:
(ok, ez csak 32k, de többet is tehetsz, valamint van nagyobb is, csak példaként)

Bővebben: Link
(#) david10 válasza KoblogPerGyok hozzászólására (») Jún 2, 2017 /
 
Amit linkeltél, az majdnem jó, egyedül az a baj vele, hogy túl sok lába van, és jó volna egy méreteiben minél kissebb uC-t használnom, mert ez egy telefon alaplapja helyére fog kerülni és egy 3.5 inches LCD-t fog meghajtani 3,3v-os logikával.
Az Arduino Leonardo-ban lévő Atmega32u4 ideális volna, ha volna rajta minimum 64KB flash memória.
(#) icserny válasza david10 hozzászólására (») Jún 2, 2017 / 1
 
(#) david10 válasza icserny hozzászólására (») Jún 2, 2017 /
 
Kiváló!
Mentek a zöld kézek!
(#) djusee válasza kapu48 hozzászólására (») Jún 3, 2017 /
 
Szia, tegnap töltöttem le innen az IDE t, mit mondjak, kis ujjgyakorlat után szinte fülig érő szájjal irom a kódom.
Nekem bejön
(#) vyky válasza kapu48 hozzászólására (») Jún 4, 2017 /
 
Szia.Letöltöttem,de valamiért "Please wait for the 'arduino installer job' to finish. Look at right bottom of the eclipse window to see if it is still running." ezt írja ki.
(#) kapu48 válasza vyky hozzászólására (») Jún 5, 2017 / 1
 
Ezt olyan könnyű bedobni a fordítóba!:
"Várja meg, hogy befejezze az" arduino telepítői munkát ", nézze meg a napfogyatkozás ablakának jobb alját, és nézze meg, hogy még mindig fut-e? A zöld csik."

Igen első indításnál még letöltöget pluginokat. És netkapcsolatban kel maradni!
Legjobb, ha megnézed ezeket a videókat:
Bővebben: Link
A hozzászólás módosítva: Jún 5, 2017
(#) vyky válasza kapu48 hozzászólására (») Jún 5, 2017 /
 
Köszönöm,akkor türelemmel leszek
(#) orifab válasza orifab hozzászólására (») Jún 5, 2017 /
 
Sziasztok.

Esetleg van valami ötletetek, mi foghat ilyen jelet, ami kommunikál Andruidoval?
(#) vyky válasza kapu48 hozzászólására (») Jún 5, 2017 /
 
Felraktam a 3 verziót. szépen fut épp csak nem akarja feltölteni az Arudinora,hiába állítottam be a portot és a tipust. AVRDUDE csak számol ,és számol Mi lehet a gond?
(#) KoblogPerGyok válasza vyky hozzászólására (») Jún 5, 2017 /
 
Frissítsed az oprendszered is, hátha.
(#) djusee válasza vyky hozzászólására (») Jún 5, 2017 /
 
Milyen hibaüzenetet kapsz? Nem lehetséges hogy valami megnyitotta elötte a portot és ezért nem tud hozzáférni? Nekem legalábbis ez volt a gond.
(#) djusee hozzászólása Jún 5, 2017 /
 
Sziasztok. Próbálom megoldani hogy változtatni tudjam az ardu serial sebességét , adat,paritás.stop bit et. A gond az hogy az adatokat tömbböl szedem ki, ami gondolom nem spórol a memórával. Van ennek jobb módja?
A programnak nemsok haszna van igy azon kivül hogy változtatom a serial beállitást.
  1. #include "Arduino.h"
  2. #include <EEPROM.h>
  3. #include "LiquidCrystal.h"
  4. ////////////////////////////////////////
  5.  
  6. #define AKEYBOARD A0 // analog bemenet
  7. #define CONFIGADRS 9 // EEPROM konfigurácio kezdöcim
  8. #define btnRIGHT  0
  9. #define btnUP     1
  10. #define btnDOWN   2
  11. #define btnLEFT   3
  12. #define btnSELECT 4
  13. #define btnNONE   5
  14. #define BAUD 0
  15. #define PARITY 1
  16.  
  17. //////////Változók//////////////////////
  18.  
  19. const unsigned long ul_baud[] = {300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200}; // serial sebesség
  20. byte b_speedIndex[] = {0,0}; // baud es paritas index
  21. const byte b_sIndexMax[] = {11,23}; // ul_baud, ch_parity maximum
  22. ////////////////////////////////Adat bit , paritás, stop bit
  23. const char ch_parity[24][4] = {"5N1","6N1","7N1","8N1","5N2","6N2","7N2","8N2","5E1","6E1","7E1","8E1","5E2","6E2","7E2","8E2","5O1","6O1","7O1","8O1","5O2","6O2","7O2","8O2"};
  24. const byte b_parity[] = {0x00,0x02,0x04,0x06,0x08,0x0A,0x0C,0x0E,0x20,0x22,0x24,0x26,0x28,0x2A,0x2C,0x2E,0x30,0x32,0x34,0x36,0x38,0x3A,0x3C,0x3E};
  25. byte b_longPress = 0;
  26. unsigned long ul_prevMillis = 0, ul_displMillis = 0;
  27.  
  28. LiquidCrystal lcd(7,6,5,4,3,2);
  29.     // Az LCD bekotese labak szerint:
  30.     // RS(D4), E(D5), D4(D6) ,D5(D7), D6(D8), D7(D9)
  31.  
  32. void setup()
  33. {
  34.         EEPolvas(CONFIGADRS);
  35.         lcd.begin(16,2);
  36.         Serial.begin(ul_baud[b_speedIndex[BAUD]], b_parity[b_speedIndex[PARITY]]);
  37. }
  38.  
  39. void loop()
  40. {
  41.   if ((millis() - ul_prevMillis) >= 200)
  42.   {
  43.           lcd.clear();
  44.           lcd.print("RECIEVE");
  45.           ul_prevMillis = millis();
  46.           switch (read_LCD_buttons())
  47.           {
  48.                   case btnRIGHT:{break;}
  49.                   case btnLEFT:{break;}
  50.                   case btnUP:{break;}
  51.                   case btnDOWN:{break;}
  52.                   case btnSELECT:
  53.                   {
  54.                           if(b_longPress == 10)
  55.                           {
  56.                                   beallitas();
  57.                           }
  58.                           else
  59.                           {
  60.                                   b_longPress++;
  61.                           }
  62.                           break;
  63.                   }
  64.                   case btnNONE:{b_longPress = 0; break;}
  65.           }
  66.           Serial.println("ok");
  67.   }
  68. }
  69.  
  70. ///////////EEPROM OLVAS, IR/////////////
  71. void EEPolvas(int address)
  72. {
  73.         for(byte i = 0; i<2; i++)
  74.         {
  75.                 b_speedIndex[i] = EEPROM.read(address+i);
  76.         }
  77. }
  78.  
  79. //////////////////
  80. void EEPiras(int address)
  81. {
  82.         for(byte i = 0; i<2; i++)
  83.         {
  84.                 EEPROM.write(address+i , b_speedIndex[i]);
  85.         }
  86. }
  87.  
  88. //////////ADC Billentyu////////////
  89. int read_LCD_buttons()
  90. {
  91.         int adc_key_in = analogRead(AKEYBOARD);
  92.         if (adc_key_in > 1000) return btnNONE;
  93.         if (adc_key_in < 50)   return btnRIGHT;
  94.         if (adc_key_in < 250)  return btnUP;
  95.         if (adc_key_in < 450)  return btnDOWN;
  96.         if (adc_key_in < 650)  return btnLEFT;
  97.         if (adc_key_in < 850)  return btnSELECT;
  98.         return btnNONE;
  99. }
  100.  
  101. void beallitas()
  102. {
  103.     boolean befejez = false;
  104.     lcd.clear();
  105.     lcd.print("Settings");
  106.     delay(2000);
  107.     ul_prevMillis = millis();
  108.     while(!befejez && ((millis() - ul_prevMillis) <= 20000)) // 20mp timeout vagy SELECT gomb al mentés és kilépés
  109.     {
  110.         if ((millis()-ul_displMillis) >= 300)
  111.         {
  112.                   switch (read_LCD_buttons())
  113.                      {
  114.                      case btnRIGHT:
  115.                      {
  116.                          if (b_speedIndex[0] < b_sIndexMax[0])
  117.                          {
  118.                                  b_speedIndex[0] ++;
  119.                          }
  120.                          ul_prevMillis = millis();
  121.                          break;
  122.                      }
  123.                      case btnLEFT:
  124.                      {
  125.                          if (b_speedIndex[0] > 0)
  126.                          {
  127.                                  b_speedIndex[0] --;
  128.                          }
  129.                          ul_prevMillis = millis();
  130.                          break;
  131.                      }
  132.                      case btnUP:
  133.                      {
  134.                          if (b_speedIndex[1] < b_sIndexMax[1])
  135.                          {
  136.                                  b_speedIndex[1] ++;
  137.                          }
  138.                          ul_prevMillis = millis();
  139.                          break;
  140.                      }
  141.                      case btnDOWN:
  142.                      {
  143.                          if (b_speedIndex[1] > 0)
  144.                          {
  145.                                  b_speedIndex[1] --;
  146.                          }
  147.                          ul_prevMillis = millis();
  148.                          break;
  149.                      }
  150.                      case btnSELECT:
  151.                      {
  152.                          EEPiras(CONFIGADRS);
  153.                          lcd.clear();
  154.                          lcd.print("SAVED");
  155.                          delay(1000);
  156.                          befejez = true;
  157.                          break;
  158.                      }
  159.                      case btnNONE:{b_longPress = 0; break;}
  160.                      }
  161.                   lcd.clear();
  162.                   lcd.print(ul_baud[b_speedIndex[BAUD]]);
  163.                   lcd.setCursor(0,1);
  164.                   lcd.print(ch_parity[b_speedIndex[PARITY]]);
  165.                   ul_displMillis = millis();
  166.           }
  167.   }
  168. }
(#) jeges válasza kapu48 hozzászólására (») Jún 5, 2017 /
 
eclipse van több verzio is arduino alá pl neon de egyike másika nagyon kerzedti stádiumba van le szedi ami kel magának de amikor hadra fogható lene el
szál hibákal könyvtár telepités..forditás feltöltés nagy kaki az egész....
(#) kapu48 válasza jeges hozzászólására (») Jún 5, 2017 /
 
Ne általánosítsunk!
Vannak gyengébbek, és fejlettebbek.
Amit ajánlottam az már egészen tökéletes.
Az Arduinonál 100* jobb!

Ha nem értesz az Eclipsehez? Akkor a bajok csak nálad születnek!
Ki emeltem, hogy haladók részére ajánlom!
A hozzászólás módosítva: Jún 5, 2017
(#) jeges válasza kapu48 hozzászólására (») Jún 5, 2017 /
 
Ne szoktam kilodni fejlestöi hibákal gondolom más sem az elég nyüg ilyenekel foglalkozni (hibba kodokal fejtegetni keresgélni) csak ennyi az egész...
De vakakinek tengernyi idejevan ilyenel szorakozni biztos van ilyenis itt neki jó szorakozást kivánok!
(#) djusee válasza kapu48 hozzászólására (») Jún 5, 2017 /
 
Egyetértek. Eddig ami gondom volt vele hogy a dark theme nél némely szinek nem voltak valami jók, pl betüszin fehér, kijelölés pedig valami citromsárgás valami amiért nehéz volt olvasni, de gyorsan orvosolható beállitásokban. Viszon a Arduino IDE hez képest sokkal de sokkal többet nyújt ami megkönnyiti a fejlesztést.
Következő: »»   351 / 852
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