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   105 / 850
(#) Koleus válasza roland9 hozzászólására (») Ápr 24, 2015 /
 
Érdekelne, mivel és hogyan flash-elted az USBasp-t.
A fischl leírását olvasva, először JP2 rövidrezár (kivéve, ha a kinaiak nem jelölték máshogy), hogy engedélyezve legyen a "Self programming". Ha rövidre zárod a JP1-et is, a másik programozózól kap tápot, nem kell USB. A bekötés marad a standard. Ezután fordítod a kódot a megfelelő procira (amit épp a kinai elvtársak beépítettek) és a másik programozóval felprogramozod.
Ezután kötelezően leveszed a JP2-őt, mert nem használhatod mint programozó (reseteli saját magát is, nem csak a programozni kívánt procit).
A leírás szerint, van JP3 is, ami csökkentett órajelet eredményez, elméletileg használható -B kapcsoló helyett (nem próbáltam).
A legfrissebb firmware a fischl.de-en 2011-es
(#) icserny válasza andykaaa hozzászólására (») Ápr 24, 2015 /
 
Mivel a 400 és a 19.5 is mV-ban van, az ADC-vel mért feszültséget is mV-ban kellene megadni:
  1. ADCvolt = ADC * 5000 / 1024


A -40 °C ebből szerintem sem jön össze. Én MCP9700-at használok, ennél 10 mV/°C az érzékenység és 500 mV a nullapont. Ez tényleg használható -40 °C-ig (nem mintha vágynék rá...).
(#) andykaaa válasza icserny hozzászólására (») Ápr 24, 2015 /
 
Ott tenyleg elirtam 3 db. nullat, de nem ott van a gond.
Nem mindegy matematikailag a muveletek sorrendje.
Excel-ben szoktam kiszimulalni a kapott erteket 0-tol, 1023-ig.
Utana meg atnezve az adatlapjat arra a kovetkeztetesre jutottam hogy megsem mer -40 Cfok-ig mert, mint irtam, allitolag, 0 Cfok-nal 400 mV-ot ad vissza, amit a 19,5 -tel valo osztas elott le kell vonni hogy a kijelzett eredmeny 0 legyen.
Igy az elmeleti meresi tartomany -20,5 es 235,8 Cfok (+,- a tolerancia).
Idokozbe talaltam egy masik kepletet is: ADC * 25 - 2050 = homerseklet Cfok, ket tizedes pontossaggal. Majd ezt is megprobalom.
(#) Kovidivi válasza andykaaa hozzászólására (») Ápr 24, 2015 /
 
Én is néztem az adatlapját. Azt írja, hogy 19.5mV/°C, és 0°C-nál 400mV-ot ad ki. Ez nem fog -40°C-ig mérni sehogy. -10°C-tól 125°C-t ír "Specified Temperature Range"-re. -40°C-ot a 9700-tel lehet elérni (500mV/10mV/°C=-50°C).
(#) erdeidominik1999 hozzászólása Ápr 24, 2015 /
 
Sziasztok! Egy riasztóhoz szeretném azt megcsinálni, hogy az lcd-n kiírja a nyitott zónákat, hibákat, stb., de úgy szeretném megoldani, hogy mondjuk 2mp-enként cseréli az infókat ha egyszerre több dolog áll fent. Egy darabig el is jutottam a progival:
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3.  
  4. int i=0;
  5. LiquidCrystal_I2C lcd(0x27,20,4);
  6. unsigned long previousMillis = 0;
  7. void setup()
  8. {
  9.   lcd.init();
  10.   lcd.backlight();
  11. }
  12.  
  13. void loop()
  14. {
  15. unsigned long currentMillis = millis();
  16.  
  17.   if(currentMillis - previousMillis >= 2000) {
  18.     previousMillis = currentMillis;  
  19.  
  20. if(i<5){
  21. i++;
  22. }else{
  23. i=1;  
  24. }
  25. lcd.setCursor(0,0);
  26. switch (i){
  27. case 1:
  28. lcd.print("Ez az 1. informacio!");
  29. break;
  30. case 2:
  31. lcd.print("Ez az 2. informacio!");
  32. break;
  33. case 3:
  34. lcd.print("Ez az 3. informacio!");
  35. break;
  36. case 4:
  37. lcd.print("Ez az 4. informacio!");
  38. break;
  39. case 5:
  40. lcd.print("Ez az 5. informacio!");
  41. break;
  42. }
  43.   }  
  44.    
  45. }

de azt hogyan tudnám megcsinálni, hogy ha pl az 1-es és 3-as zóna van nyitva, akkor a kettest átugorja? Tehát, hogy a számláló 1-ről 3-ra ugrik, és a kettőt kihagyja. Előre is köszi!
(#) Gafly válasza erdeidominik1999 hozzászólására (») Ápr 24, 2015 /
 
Az a része, hogy honnan tudja az Arduino hogy ki és miért riasztott az hol van?
(#) erdeidominik1999 válasza Gafly hozzászólására (») Ápr 24, 2015 /
 
Ez csak egy példa volt, de beletettem egy digitalRead-et:
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3.  
  4. int zona1=LOW;
  5. int zona2=LOW;
  6. int zona3=LOW;
  7. int zona4=LOW;
  8. int i=0;
  9. LiquidCrystal_I2C lcd(0x27,20,4);
  10. unsigned long previousMillis = 0;
  11. void setup()
  12. {
  13.   lcd.init();
  14.   lcd.backlight();
  15. }
  16.  
  17. void loop()
  18. {
  19.   zona1=digitalRead(2);
  20.   zona2=digitalRead(3);
  21.   zona3=digitalRead(4);
  22.   zona4=digitalRead(5);
  23. unsigned long currentMillis = millis();
  24.  
  25.   if(currentMillis - previousMillis >= 2000) {
  26.     previousMillis = currentMillis;  
  27.  
  28. if(i<5){
  29. i++;
  30. }else{
  31. i=1;  
  32. }
  33. lcd.setCursor(0,0);
  34. switch (i){
  35. case 1:
  36. lcd.print("Ez az 1. informacio!");
  37. break;
  38. case 2:
  39. lcd.print("Ez az 2. informacio!");
  40. break;
  41. case 3:
  42. lcd.print("Ez az 3. informacio!");
  43. break;
  44. case 4:
  45. lcd.print("Ez az 4. informacio!");
  46. break;
  47. case 5:
  48. lcd.print("Ez az 5. informacio!");
  49. break;
  50. }
  51.   }  
  52.    
  53. }
(#) kapu48 válasza erdeidominik1999 hozzászólására (») Ápr 24, 2015 /
 
Tovább:
  1. case 1:
  2.   if (zona1){
  3.     lcd.print("Ez az 1. informacio!");
  4.   }
  5. break;
  6. ...
(#) mate5255 hozzászólása Ápr 24, 2015 /
 
Sziasztok olyan problémám akadt hogy van egy arduino uno-m amivel egy attiny85-öt akarok be programozni de nem sikerü.
így van össze építve:Kép
és ezt a hia üzenetet kapom :

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85

avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override this check.

Az első hiba még jó is de a második nem nem is értem mit akar jelenteni.
Remállem tudtok valami megoldást.
Kösznöm szépen előre a válaszaitokat.
(#) kukuri válasza erdeidominik1999 hozzászólására (») Ápr 24, 2015 /
 
Szerintem csak sima if feltételt használj. Nem kell a switch case. Mi van ha 10-20 riasztási területed lesz? Vagy szebben használj tömböt és akkor az i változóval végig tudod ellenőrizni az elemeket. Rövidebb és átláthatóbb lesz a kód is.
(#) roland9 válasza Koleus hozzászólására (») Ápr 25, 2015 /
 
Ebben a videóban benne van minden: Bővebben: Link még annyi volt , hogy a JP2-t rövidre kellett zárnom és már ment is. A frissítés után ezt a hibát dobta ki:

avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
(#) erdeidominik1999 válasza kapu48 hozzászólására (») Ápr 25, 2015 /
 
Eddig én is eljutottam, de így ha pl az 1-es, 4-es zóna érzékel, akkor a kettő kiírás között 6mp telik el, mert nem hagyja ki a 2-es, 3-ast.
(#) Kovidivi válasza erdeidominik1999 hozzászólására (») Ápr 25, 2015 /
 
Gyűjtsd össze az összes aktív zónát egy tömbbe, számold meg, hogy ez hány db, és ezt a tömböt írasd ki az LCD-re. Így tudsz feltételeket szabni, hogy ha csak 2 zóna aktív, akkor nem kell váltás, mert kifér a kijelzőre, ha 4 zóna, akkor 2 váltásból tudod csak kiírni a dolgokat, stb.
(#) ALI hozzászólása Ápr 25, 2015 /
 
Sziasztok. Egy kis segítségre szorulnék van egy unom tettem rá egy MAX6675 de valamiért nem akar működni C 0.00 ír a F 32.00.

  1. #include "max6675.h"
  2.  
  3. int thermoDO = 4;
  4. int thermoCS = 5;
  5. int thermoCLK = 6;
  6.  
  7. MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
  8. int vccPin = 3;
  9. int gndPin = 2;
  10.   
  11. void setup() {
  12.   Serial.begin(9600);
  13.   // use Arduino pins
  14.   pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
  15.   pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
  16.   
  17.   Serial.println("MAX6675 test");
  18.   // wait for MAX chip to stabilize
  19.   delay(500);
  20. }
  21.  
  22. void loop() {
  23.   // basic readout test, just print the current temp
  24.   
  25.    Serial.print("C = ");
  26.    Serial.println(thermocouple.readCelsius());
  27.    Serial.print("F = ");
  28.    Serial.println(thermocouple.readFahrenheit());
  29.  
  30.    delay(1000);
  31. }
A hozzászólás módosítva: Ápr 25, 2015
(#) ALI válasza ALI hozzászólására (») Ápr 25, 2015 /
 
Meg oldódott. Kínai cucc nem jól volt jelölve a lábai.
(#) proba válasza erdeidominik1999 hozzászólására (») Ápr 25, 2015 /
 
Én
if (zona1) { kiírás , késleltetés;}
if (zona2) { kiírás , késleltetés;}
.
.
formátumban gondolkodnék.Így csak azok a zónák jelződnek ki ahol esemény van, és zónánként beállítható ideig.Ha nincs esemény nincs várakozás.
(#) erdeidominik1999 válasza proba hozzászólására (») Ápr 25, 2015 /
 
De így az egész programom áll a késleltetés ideéig. Illetve hogyan oldom meg, hogy ne egyszerre íródjanak ki?
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Ápr 25, 2015 /
 
  1. void loop()
  2. {
  3.   bool update = false;
  4.   zona1 = digitalRead(2);
  5.   zona2 = digitalRead(3);
  6.   zona3 = digitalRead(4);
  7.   zona4 = digitalRead(5);  
  8.   unsigned long currentMillis = millis();
  9.  
  10.   if ((currentMillis - previousMillis >= 2000) || (i == 0)) {
  11.     previousMillis = currentMillis;
  12.     ++i %= 6;
  13.     (zona1 && (i == 1))?update = true:i++;
  14.     (zona2 && (i == 2))?update = true:i++;
  15.     (zona3 && (i == 3))?update = true:i++;
  16.     (zona4 && (i == 4))?update = true:i++;
  17.     i %= 6;
  18.   }
  19.  
  20.   if (update) {
  21.     lcd.setCursor(0, 0);
  22.     switch (i) {
  23.       case 1:
  24.         lcd.print("Ez az 1. informacio!");
  25.         break;
  26.       case 2:
  27.         lcd.print("Ez az 2. informacio!");
  28.         break;
  29.       case 3:
  30.         lcd.print("Ez az 3. informacio!");
  31.         break;
  32.       case 4:
  33.         lcd.print("Ez az 4. informacio!");
  34.         break;
  35.       case 5:
  36.         lcd.print("Ez az 5. informacio!");
  37.         break;
  38.     }
  39.   }
  40.  
  41. }
A hozzászólás módosítva: Ápr 25, 2015
(#) Koleus válasza roland9 hozzászólására (») Ápr 25, 2015 /
 
Melyik programot használtad firmware feltöltésére?
Ezt akkor írja ki, ha a frissített USBasp-vel szeretnél programozni?
Ha visszateszed a JP2-őt (az enyémen csak 2 JP van) a másik programozóval olvasható?
Ellenőrizd le a biztosítékokat, megfelelnek-e a hfuse:w:0xC9 és lfuse:w:0xEF.

Mivel az USBasp-éd a flash-elés előtt már nem akart programozni, az is lehet hogy valahol kontakthibás. Át kéne nézni/forrasztani.
(#) roland9 válasza Koleus hozzászólására (») Ápr 26, 2015 /
 
eepe programozót használtam és igen a frissítés után írja ki ezt, a programozónak nincs baja mert másik szoftverrel működik és fel is tudok vele tölteni csak arduino-val nem akarja.
Igen ha vissza teszem a JP2-t akkor olvasható a programozó másik olvasóval.
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Ápr 26, 2015 /
 
Köszi, de valahogy nem működik, akármelyik zónát nyomom, az 5. felirat kerül az lcd-re.
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Ápr 26, 2015 /
 
  1. ((zona1 && (i == 1)) || update)?update = true:i++;
  2.     ((zona2 && (i == 2)) || update)?update = true:i++;
  3.     ((zona3 && (i == 3)) || update)?update = true:i++;
  4.     ((zona4 && (i == 4)) || update)?update = true:i++;
(#) V1rusH hozzászólása Ápr 26, 2015 /
 
Sziasztok!

Először írok ebbe a topikba.

Az arduinoval eddig csak elméleti szinten foglalkoztam, azt is elég érintőlegesen, az ára nagyon távol tartott a témától. Most viszont már szeretnék aktívan foglalkozni a témával fizikailag is. Próbáltam alternatívákat keresni, majd az ebaynél kötöttem ki én is. Megdöbbentem az árkülönbségen, de nyilván van némi turpisság ebben. Van is némi fenntartásom ez ügyben.
Vélemények, tapasztalatok érdekelnének az ebayos panelekről.
Kicsit bele kerestem a témába, annyit sikerült leszűrni, hogy klónok. De mennyire egyen értékűek az eredetivel? Hardver szinten mások, vagy program szinten?

Válaszaitokat előre is köszönöm!
(#) csatti2 válasza V1rusH hozzászólására (») Ápr 26, 2015 /
 
Az ártól függ. Például kapsz UNO-t 2-3$ körüli áron. Ez programozás szempontjából teljesen jó, viszont kicsit kioptimalizálták rajta a segéd elemeket (pl. egy kínai IC-vel oldották meg a soros-USB átalakítást, ezért külön driver kell hozzá, az eredetin egy ATMEGA16U2 oldja meg ezt a feladatot). 6-7$ és afelett már a hagyományoshoz nagyon hasonló kialakításban kapod a panelt. Nekem mindkét fajtából van (plusz MEGA2560-asaim, DUE-im és Nano-im is), teljesen jól működik az összes.
A hozzászólás módosítva: Ápr 26, 2015
(#) varttina válasza V1rusH hozzászólására (») Ápr 26, 2015 /
 
Szia!
Rendeltem már jó pár cuccot az e-bayről, és mindössze egyetlen olyan termék volt közte, ami nem funkcionált rendeltetés szerűen, azt is egy öt perces munkával sikerült működésre bírnom. Ezek a klónok legtöbb paraméterükben megegyeznek az eredetivel, az illesztő chip tér el némelyik példánynál, ezekhez fel kell telepíteni egy kiegészítő csomagot, azután rendesen működik.
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Ápr 26, 2015 /
 
Valahogy most sem jó, az lenne még a kérdésem, hogy boolean operátort is lehet tömbként kezelni?
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Ápr 26, 2015 /
 
"boolean operátort" ?
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Ápr 26, 2015 /
 
Nem kell mindjárt kiakadni, ha hülyeséget írok... tehát pl.: boolean val[5];
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Ápr 26, 2015 /
 
Persze. De miért nem próbáltad mindjárt ki.
(#) saua válasza V1rusH hozzászólására (») Ápr 26, 2015 /
 
Itt sem olyan rémísztőek az árak.
Következő: »»   105 / 850
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