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   396 / 838
(#) RoliNyh hozzászólása Nov 19, 2017 /
 
Estét!

Ha már itt tartunk, én is kérdeznék egyet.
A párhuzamos (tehát amit az UNO tetejére lehet rádugni) színes TFT kijelzőkhöz létezik olyan kiegészítő áramkör, amivel SPI vagy I2C buszon lehet működtetni? Szóval, hogy ne kelljen rádugni, és maradjon több láb szabadon. A MEGA board most nem játszik (igazából az UNO sem), mert valójában NANO boardhoz illesztenék nagyobb 3.5" vagy a fölötti kijelzőt, de SPI vagy I2C nemigazán találok csak kissebbeket, vagy húzós áron... TouchScreen nem lényeg...
A hozzászólás módosítva: Nov 19, 2017
(#) kala1982a válasza Kari55 hozzászólására (») Nov 20, 2017 /
 
Ezzel végtelen ciklusba is lehet ám keveredni
(#) proba válasza Kari55 hozzászólására (») Nov 20, 2017 /
 
Talán működne egy olyan feltétel, ha a hónap március a dátum több mint 24 és vasárnap van az óra meg pont 2 akkor állítsa át az órát egy órával előbbre. Ha meg a hónap október a dátum több mint 23 a nap vasárnap az óra pont 3 , a jelzés törölve van állítsa az órát vissza egy órát és jelzés beállítása, amit majd 4 órakor törölsz hogy ne tekergesse vissza folyamatosan.
(#) TavIR-AVR válasza RoliNyh hozzászólására (») Nov 21, 2017 /
 
Illesztő még csak-csak. MCP23017 (I2C -> 1 cím 16 IO).
De: 1. lassú lesz, 2. a libraryt is át kell írni erre.
Jobban jársz ha kijelzőcsere ami SPI buszos gyárilag.

C terv: egyik processzor a főprogramodat viszi, míg a másik a vodeokegjelenítésért felel. 2 db nano pl. összekötve IIC vagy soros porton át...
(#) RoliNyh válasza TavIR-AVR hozzászólására (») Nov 21, 2017 /
 
Ajjajj szegény fejemnek.
Az 1 pont még bele is fér (csak egy dátum és egy idő lesz kiírva),
de a 2 -es pontot sajna már nem tudom bevállalni...

Én is egyre inkább hajlok a nagy soros képernyőre, csakhát az ára az ami még visszatart.

A két procis megoldás szerintem ehez a feladathoz tulzás lenne, de ha elég spórolós, lehet még azon is agyalok egy kicsit...
(#) csatti2 válasza RoliNyh hozzászólására (») Nov 22, 2017 /
 
Ha csak a dátum és az idő kijelzése kell, építhetsz egyet LED mátrix modulokból is, az akár a kívánt 3.5"-nál jóval nagyobb is lehet.
pl.: link
Ha azért akarsz TFT-t használni mert az jól néz ki, akkor el kell keserítselek. Az olyan betűtípusok, amik elférnek egy Nano flash-ébe, nem túlságosan nagy felbontásúak és így nagyon "pixeles" lesz a kiíratás is. A képfrissítési sebességről pedig már ne is beszéljünk. Az ATMega családot nem komoly kijelzők meghajtására találták ki.
(#) suszitibi hozzászólása Nov 22, 2017 /
 
Sziasztok
Szeretnék segítséget kérni. Most ismerkedem az Arduinoval. Van egy UNO R3 kütyüm, Atmega 328-cal.
Tavaly ezzel oldottam meg a karácsonyi LEDek villogtatását, persze építettem hozzá elektronikát. Ez egyszerű volt, csak a kimeneteket kellett alacsony, vagy magas szintre állítani, köztük a megfelelő késleltetéssel.
Most a bemeneteket is szeretném kezelni, de nem találok leírást több bemenet és több kimenet egyidejű működtetésére. Két ledet kellene megvilágítani, valamint az egyiket villogtani, három bemenet különböző helyzetétől. Tudnátok esetleg példaprogramot, vagy blokkokat, esetleg a program szerkezeti felépítéséhez segítséget? Nem szeretném, hogy valaki megírja helyettem, csak iránymutatást kérnék.
Köszönettel: Tibi
(#) tbarath válasza suszitibi hozzászólására (») Nov 22, 2017 /
 
1. tavir.hu ingyenes tanfolyam, javaslom!
2. bemenetből kétféle van: van digitális és analóg.

Digitális: kb. ugyanaz, mint a kimeneted, magas vagy alacsony szint lehet, digitális lábakat használhatsz erre. A digitalread függvénynek nézz utána, setup-ban persze pinmode(X, input);
Alapban lebeg, szóval egy 1k-100k közötti felhúzó ellenálláson keresztül húzd 5 Voltra, és a kapcsoló vagy nyomógomb húzza le a földre. Használnatod a uC beépített felhúzását is, ezesetben INPUT_PULLUP a barátod.

Analóg: 10 bites ADC, 0-5V közöti feszültségre 0-1024 közötti értéket kapsz, analóg bemeneteket használhatsz erre. Pl. egy potival szabályozod a villogás sebességét, ilyesmi. Az 5V nem kötelezően ennyi, az AREF pin-en tudsz referenciát megadni neki, illetve uC-től függően több beépített referenciát is használhatsz. Atmega328 esetében 1,1 és 2,56V van még a lehetőségek között.
(#) csatti2 válasza tbarath hozzászólására (») Nov 22, 2017 /
 
Tévedsz, ebben az IC-ben nincs 2,56V-os referenciafeszültség.

A táplábak és AREF kivételével minden láb nagy impedanciás digitális bemenet alapból (az "analóg" lábak is), az összes láb egyben digitális kimenetnek is konfigurálható (az előbbi megkötéssel). A lábak elsősorban abban különböznek, hogy bizonyos lábak bizonyos hardveres perifériákhoz is kapcsolatot jelenthetnek (USART, ADC, SPI, külső kristály, interruptok, időzítők, reset), de ez a kapcsolat már nem univerzális, azaz nem használható bármelyik láb pl. az USART-hoz.
(#) tbarath válasza csatti2 hozzászólására (») Nov 22, 2017 /
 
Lehet, akkor rosszul emlékeztem.
Mindenesetre részletkérdés, ha a kollegának valamilyen potis szabályozás szükséges akkor pont jó lesz neki az 5V AREF-nek
(#) csatti2 válasza tbarath hozzászólására (») Nov 22, 2017 /
 
Igen, viszont ha nem kap a proci 5V tápot (pl. USB általában kevesebb) de te rákötsz 5V-ot az AREF-re akkor le fog égni. Ha meg a táp 5V-ját használja, akkor felesleges összekötni, az AVCC referenciaként való kiválasztásakor az IC-n belül automatikusan összekötésre kerül az AVCC és az AREF. Egy poti esetén ez egyébként érdektelen, ha közös a táp a mért érték így is úgy is arányos lesz.
(#) tbarath válasza csatti2 hozzászólására (») Nov 22, 2017 /
 
Igen, 5V a default internal AREF, ahhoz nem kell semmit összekötni.
De nem is törekedtem arra, hogy mindent pontosan leírjak, iránymutatást kért, gondolom utána fog olvasni, és ha kérdése van akkor majd válaszolunk rá.
(#) suszitibi hozzászólása Nov 22, 2017 /
 
Köszönöm a gyors válaszokat.
3 bemenetet használnék, csak alacsony és magas szint lenne, tehát semmi analóg. Alaphelyzet magas szint 10k-val. A külső vezérlő egység reléje ezt zárná testre, vagyis alacsony szint lenne az aktív, működtető. Amíg alacsony lenne egy bemenet, addig világítana a hozzá tartozó led. A gond az, hogy a három bemenetnek különböző kombinációja szerint, változna a két led, vagy épp villogna.
Egy gombra és egy ledre van példaprogramom.
(#) suszitibi hozzászólása Nov 22, 2017 /
 
Az Atmega 328-at külön használnám, ennek építek elektronikát, tehát nem az UNO-ban lenne.
(#) tbarath válasza suszitibi hozzászólására (») Nov 22, 2017 /
 
A relé szó nem tetszik
A példaprogramodat nem nagy dolog átírni szerintem, szívesen segítünk.
(#) tbarath válasza suszitibi hozzászólására (») Nov 22, 2017 /
 
Ha a méret az ok, akkor használj nano-t, az alig nagyobb, mint egy DIp tokos 328-as
(#) csatti2 válasza suszitibi hozzászólására (») Nov 22, 2017 /
 
Ha nincs semmi más extra kívánság, akkor rém egyszerű a dolog.
pici kód minta (nem tesztelem):
  1. int i = 0;
  2.   if (digitalRead(bemenet1) == HIGH) i++;
  3.   if (digitalRead(bemenet2) == HIGH) i+=2;
  4.   if (digitalRead(bemenet3) == HIGH) i+=4;
  5.  
  6.   switch(i)
  7.     {
  8.       case 0: vmit csinálsz; break;
  9.       case 1: vmit csinálsz; break;
  10.       stb.
  11.       case 7: vmit csinálsz; break;
  12.     }
(#) MATA hozzászólása Nov 23, 2017 /
 
Üdv mesterek!
Van itt ez a kód ez egy Arduino nano-ra való méghozzá egy lítium cella kapacitás mérőé!
A kód rendben is van jól működik annyi lenne a kérdésem hogy ha nimh cellát szeretnék vele tesztelni akkor elég e csak a "float battLow = 2.9;"-et átírni bent? Köszönöm előre is!
  1. /*
  2. * Battery Capacity Checker
  3. * Uses Nokia 5110 Display
  4. * Uses 1 Ohm power resister as shunt - Load can be any suitable resister or lamp
  5. *
  6. *
  7. *
  8. * Required Library - LCD5110_Graph.h - http://www.rinkydinkelectronics.com/library.php?id=47
  9. */
  10.  
  11. #include "LCD5110_Graph.h"
  12. LCD5110 myGLCD(5, 6, 7, 9, 8);  // Setup Nokia 5110 Screen SCLK/CLK=5, DIN/MOSI/DATA=6, DC/CS=7, RST=9 Chip Select/CE/SCE=8,
  13. extern uint8_t SmallFont[];
  14. extern uint8_t MediumNumbers[];
  15.  
  16. #define gatePin 10
  17. #define highPin A0
  18. #define lowPin A1
  19.  
  20. boolean finished = false;
  21. int printStart = 0;
  22. int interval = 5000;  //Interval (ms) between measurements
  23.  
  24. float mAh = 0.0;
  25. float shuntRes = 1.0;  // In Ohms - Shunt resistor resistance
  26. float voltRef = 4.71; // Reference voltage (probe your 5V pin)
  27. float current = 0.0;
  28. float battVolt = 0.0;
  29. float shuntVolt = 0.0;
  30. float battLow = 2.9;
  31.  
  32. unsigned long previousMillis = 0;
  33. unsigned long millisPassed = 0;
  34.  
  35. void setup() {
  36.  
  37.   Serial.begin(9600);
  38.   Serial.println("Battery Capacity Checker v1.1");
  39.   Serial.println("battVolt   current     mAh");
  40.  
  41.   pinMode(gatePin, OUTPUT);
  42.   digitalWrite(gatePin, LOW);
  43.  
  44.   myGLCD.InitLCD(); //initialize LCD with default contrast of 70
  45.   myGLCD.setContrast(68);
  46.   myGLCD.setFont(SmallFont); // Set default font size. tinyFont 4x6, smallFont 6x8, mediumNumber 12x16, bigNumbers 14x24
  47.   myGLCD.clrScr();
  48.  
  49.   myGLCD.print("Battery",CENTER,0);
  50.   myGLCD.print("Check",CENTER,12);
  51.   myGLCD.print("Please Wait",CENTER,24);
  52.   myGLCD.print("AdamWelch.Uk",8,40);
  53.   myGLCD.update();
  54.   delay(2000);
  55.   myGLCD.clrScr();
  56. }
  57.  
  58. void loop() {
  59.  
  60.   battVolt = analogRead(highPin) * voltRef / 1024.0;
  61.   shuntVolt = analogRead(lowPin) * voltRef / 1024.0;
  62.    
  63.   if(battVolt >= battLow && finished == false)
  64.   {
  65.       digitalWrite(gatePin, HIGH);
  66.       millisPassed = millis() - previousMillis;
  67.       current = (battVolt - shuntVolt) / shuntRes;
  68.       mAh = mAh + (current * 1000.0) * (millisPassed / 3600000.0);
  69.       previousMillis = millis();
  70.  
  71.       myGLCD.clrScr();
  72.       myGLCD.print("Discharge",CENTER,0);
  73.       myGLCD.print("Voltage:",0,10);
  74.       myGLCD.printNumF(battVolt, 2,50,10);
  75.       myGLCD.print("v",77,10);
  76.       myGLCD.print("Current:",0,20);
  77.       myGLCD.printNumF(current, 2,50,20);
  78.       myGLCD.print("a",77,20);
  79.       myGLCD.printNumI(mAh,30,30);
  80.       myGLCD.print("mAh",65,30);
  81.       myGLCD.print("Running",CENTER,40);
  82.       myGLCD.update();
  83.        
  84.       Serial.print(battVolt);
  85.       Serial.print("\t");
  86.       Serial.print(current);
  87.       Serial.print("\t");
  88.       Serial.println(mAh);
  89.        
  90.       delay(interval);
  91.   }
  92.   if(battVolt < battLow)
  93.   {
  94.       digitalWrite(gatePin, LOW);
  95.      
  96.       finished = true;
  97.        
  98.       if(mAh < 10) {
  99.         printStart = 40;
  100.       }
  101.       else if(mAh < 100) {
  102.         printStart = 30;
  103.       }
  104.       else if(mAh <1000) {
  105.         printStart = 24;
  106.       }
  107.       else if(mAh <10000) {
  108.         printStart = 14;
  109.       }
  110.       else {
  111.         printStart = 0;
  112.       }
  113.        
  114.       myGLCD.clrScr();
  115.       myGLCD.print("Discharge",CENTER,0);
  116.       myGLCD.print("Voltage:",0,10);
  117.       myGLCD.printNumF(battVolt, 2,50,10);
  118.       myGLCD.print("v",77,10);
  119.       myGLCD.setFont(MediumNumbers);
  120.       myGLCD.printNumI(mAh,printStart,21);
  121.       myGLCD.setFont(SmallFont);
  122.       myGLCD.print("mAh",65,30);
  123.       myGLCD.print("Complete",CENTER,40);
  124.       myGLCD.update();
  125.        
  126.       delay(interval * 2);
  127.   }
  128. }
A hozzászólás módosítva: Nov 23, 2017
(#) jointsilver36 hozzászólása Nov 23, 2017 /
 
Sziasztok!ezt szeretném megépíteni.Bővebben: http://adamwelch.co.uk/2016/01/lithium-ion-18650-battery-...ecker/ a programmal feltöltés közben a képen látható hibaüzenetet írja ki.Mi az oka ?A nanóm CH340-es klón.Esetleg a programban kell beállítani valamit? Köszi a segítséget.
A hozzászólás módosítva: Nov 23, 2017
(#) jointsilver36 válasza jointsilver36 hozzászólására (») Nov 23, 2017 /
 
A kód:

  1. /*
  2. * Battery Capacity Checker
  3. * Uses Nokia 5110 Display
  4. * Uses 1 Ohm power resister as shunt - Load can be any suitable resister or lamp
  5. *
  6. *
  7. *
  8. * Required Library - LCD5110_Graph.h - http://www.rinkydinkelectronics.com/library.php?id=47
  9. */
  10.  
  11. #include "LCD5110_Graph.h"
  12. LCD5110 myGLCD(5, 6, 7, 9, 8);  // Setup Nokia 5110 Screen SCLK/CLK=5, DIN/MOSI/DATA=6, DC/CS=7, RST=9 Chip Select/CE/SCE=8,
  13. extern uint8_t SmallFont[];
  14. extern uint8_t MediumNumbers[];
  15.  
  16. #define gatePin 10
  17. #define highPin A0
  18. #define lowPin A1
  19.  
  20. boolean finished = false;
  21. int printStart = 0;
  22. int interval = 5000;  //Interval (ms) between measurements
  23.  
  24. float mAh = 0.0;
  25. float shuntRes = 1.0;  // In Ohms - Shunt resistor resistance
  26. float voltRef = 4.71; // Reference voltage (probe your 5V pin)
  27. float current = 0.0;
  28. float battVolt = 0.0;
  29. float shuntVolt = 0.0;
  30. float battLow = 2.9;
  31.  
  32. unsigned long previousMillis = 0;
  33. unsigned long millisPassed = 0;
  34.  
  35. void setup() {
  36.  
  37.   Serial.begin(9600);
  38.   Serial.println("Battery Capacity Checker v1.1");
  39.   Serial.println("battVolt   current     mAh");
  40.  
  41.   pinMode(gatePin, OUTPUT);
  42.   digitalWrite(gatePin, LOW);
  43.  
  44.   myGLCD.InitLCD(); //initialize LCD with default contrast of 70
  45.   myGLCD.setContrast(68);
  46.   myGLCD.setFont(SmallFont); // Set default font size. tinyFont 4x6, smallFont 6x8, mediumNumber 12x16, bigNumbers 14x24
  47.   myGLCD.clrScr();
  48.  
  49.   myGLCD.print("Battery",CENTER,0);
  50.   myGLCD.print("Check",CENTER,12);
  51.   myGLCD.print("Please Wait",CENTER,24);
  52.   myGLCD.print("AdamWelch.Uk",8,40);
  53.   myGLCD.update();
  54.   delay(2000);
  55.   myGLCD.clrScr();
  56. }
  57.  
  58. void loop() {
  59.  
  60.   battVolt = analogRead(highPin) * voltRef / 1024.0;
  61.   shuntVolt = analogRead(lowPin) * voltRef / 1024.0;
  62.    
  63.   if(battVolt >= battLow && finished == false)
  64.   {
  65.       digitalWrite(gatePin, HIGH);
  66.       millisPassed = millis() - previousMillis;
  67.       current = (battVolt - shuntVolt) / shuntRes;
  68.       mAh = mAh + (current * 1000.0) * (millisPassed / 3600000.0);
  69.       previousMillis = millis();
  70.  
  71.       myGLCD.clrScr();
  72.       myGLCD.print("Discharge",CENTER,0);
  73.       myGLCD.print("Voltage:",0,10);
  74.       myGLCD.printNumF(battVolt, 2,50,10);
  75.       myGLCD.print("v",77,10);
  76.       myGLCD.print("Current:",0,20);
  77.       myGLCD.printNumF(current, 2,50,20);
  78.       myGLCD.print("a",77,20);
  79.       myGLCD.printNumI(mAh,30,30);
  80.       myGLCD.print("mAh",65,30);
  81.       myGLCD.print("Running",CENTER,40);
  82.       myGLCD.update();
  83.        
  84.       Serial.print(battVolt);
  85.       Serial.print("\t");
  86.       Serial.print(current);
  87.       Serial.print("\t");
  88.       Serial.println(mAh);
  89.        
  90.       delay(interval);
  91.   }
  92.   if(battVolt < battLow)
  93.   {
  94.       digitalWrite(gatePin, LOW);
  95.      
  96.       finished = true;
  97.        
  98.       if(mAh < 10) {
  99.         printStart = 40;
  100.       }
  101.       else if(mAh < 100) {
  102.         printStart = 30;
  103.       }
  104.       else if(mAh <1000) {
  105.         printStart = 24;
  106.       }
  107.       else if(mAh <10000) {
  108.         printStart = 14;
  109.       }
  110.       else {
  111.         printStart = 0;
  112.       }
  113.        
  114.       myGLCD.clrScr();
  115.       myGLCD.print("Discharge",CENTER,0);
  116.       myGLCD.print("Voltage:",0,10);
  117.       myGLCD.printNumF(battVolt, 2,50,10);
  118.       myGLCD.print("v",77,10);
  119.       myGLCD.setFont(MediumNumbers);
  120.       myGLCD.printNumI(mAh,printStart,21);
  121.       myGLCD.setFont(SmallFont);
  122.       myGLCD.print("mAh",65,30);
  123.       myGLCD.print("Complete",CENTER,40);
  124.       myGLCD.update();
  125.        
  126.       delay(interval * 2);
  127.   }
  128. }
A hozzászólás módosítva: Nov 23, 2017
Moderátor által szerkesztve
(#) jointsilver36 válasza MATA hozzászólására (») Nov 23, 2017 /
 
Szia!El tudnád nekem a működőképes kódot küldeni az emailcímemre?maxtorsms@gmail.com

köszi
(#) tbarath válasza jointsilver36 hozzászólására (») Nov 23, 2017 /
 
Required Library - LCD5110_Graph.h - http://www.rinkydinkelectronics.com/library.php?id=47

ez megvan?
(#) jointsilver36 válasza tbarath hozzászólására (») Nov 23, 2017 /
 
Igen megvan .De a programot enélkül is fel kéne tudnom tölteni rá nem?A számok kellenek a program kód elé?
(#) kapu48 válasza jointsilver36 hozzászólására (») Nov 23, 2017 /
 
A linken levő kódot bekel tölteni az alábbi címre:
c:\Users\neve?\Documents\Arduino\libraries\LCD5110_Graph\
(Az egész könyvtárat kicsomagolva)
És újraindítani az arduino IDE-t.
(#) suszitibi válasza csatti2 hozzászólására (») Nov 23, 2017 /
 
Köszönöm, amint lesz rá időm, megpróbálom. Utána jelzem, mire jutottam.
(#) jointsilver36 válasza kapu48 hozzászólására (») Nov 23, 2017 /
 
Köszi szépen.
(#) tbarath válasza jointsilver36 hozzászólására (») Nov 23, 2017 /
 
Enélkül nem fordul le a program, tehát azt rátölteni se tudod.
(#) trickentrack hozzászólása Nov 25, 2017 /
 
Sziasztok, vásároltam kínából egy replica arduino nano-t.
De valami gond van vele, lehet csak a beállítások nem jók.
Mikor feltöltöm a programot, alul a zöld sáv végigmegy, és megáll néhány percig.
Ezután kiírja a következőt:
  1. Vázlat használ 3012 bájt (9%) -ot a program tárhelyből. A maximum 30720 bájt.
  2. A globális változók 200 bájt (9%)-ot használnak a dinamikus memóriából, 1848 bájtot hagyva a helyi változóknak. A maximum 2048 bájt.
  3. avrdude: stk500_recv(): programmer is not responding
  4. avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x90
  5. avrdude: stk500_recv(): programmer is not responding
  6. avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x90
  7. avrdude: stk500_recv(): programmer is not responding
  8. avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x90
  9. avrdude: stk500_recv(): programmer is not responding
  10. avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x90
  11. avrdude: stk500_recv(): programmer is not responding
  12. avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x90
  13. avrdude: stk500_recv(): programmer is not responding
  14. avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x90
  15. avrdude: stk500_recv(): programmer is not responding
  16. avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x90
  17. Probléma az alaplapra feltöltéskor. Nézd meg a http://www.arduino.cc/en/Guide/Troubleshooting#upload -t javaslatokért.
  18. avrdude: stk500_recv(): programmer is not responding
  19. avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x90
  20. avrdude: stk500_recv(): programmer is not responding
  21. avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x90
  22. avrdude: stk500_recv(): programmer is not responding
  23. avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x90


Van valami ötletetek mi lehet a gond?

Előre is köszönöm!
(#) nedudgi válasza trickentrack hozzászólására (») Nov 25, 2017 /
 
A drivert telepítetted? A programozó port-ot beállítottad?
A hozzászólás módosítva: Nov 25, 2017
(#) trickentrack válasza nedudgi hozzászólására (») Nov 25, 2017 1 /
 
Milyen drivert? Unohoz nem kellett driver.
Következő: »»   396 / 838
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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