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   141 / 851
(#) Kovidivi válasza erdeidominik1999 hozzászólására (») Júl 31, 2015 /
 
Ha a lapot 16Mhz-es kvarc helyett 20Mhz-essel hajtod, akkor ez a következmény. De akkor is, ha a felhasznált timer-t egy másik könyvtár elállítja. Miért nem nézed meg, mit csinál a library, hogy esetleg korrigáljad?
A hozzászólás módosítva: Júl 31, 2015
(#) erdeidominik1999 válasza Kovidivi hozzászólására (») Júl 31, 2015 /
 
Hát gyári, de az a gond, hogy nincs nálam, mert nem az enyém.
(#) Kovidivi válasza erdeidominik1999 hozzászólására (») Júl 31, 2015 /
 
A program ellenőrzéséhez nem kell Arduino lap. Gondolom két könyvtár ismét összeveszik a timeren. Mennyit siet a függvény?
(#) erdeidominik1999 válasza Kovidivi hozzászólására (») Júl 31, 2015 /
 
1 nap alatt 2 percet.
(#) Kovidivi válasza erdeidominik1999 hozzászólására (») Aug 1, 2015 /
 
Vagy pedig túl sok helyen használod a cli() parancsot, mondjuk akkor inkább késnie kellene az időnek. Vagy megcsinálod rendesen a programod, hogy az idővel foglalkozó függvény prioritása legyen az elsődleges (és még ekkor sem biztos, hogy a pontossága megfelelő lesz, de kalibrálással javítható), vagy pedig használsz RTC IC-t.
(#) Bell hozzászólása Aug 2, 2015 /
 
Sziasztok!
Egy ilyen STM32F103C8T6 STM32 -es modult szeretnék arduinoval programozni soros porton, ehhez hasonlóan. A szükséges lib-et telepítettem, a mintákat felkínálja.
Nem tudom milyen panelt és programozót kell választani, mert win7-nél az 1.6.5 verziójú Arduino IDE Tools -> Board menüjéből nem választható csak az Arduino Zero és az Arduino Due. A Boards manager nem kínál mást.
Van valakinek ezzel kapcsolatos tapasztalata, infója?
A hozzászólás módosítva: Aug 2, 2015
(#) andykaaa hozzászólása Aug 3, 2015 /
 
Sziasztok
Az idot, mivel 60 s egy perc es 60 perc egy ora nem a szabvanyos matematikaval adjuk ossze/ osszegezzuk.
A kerdesm az lenne hogy arduinoba: hogy adunk ossze ket ido mennyiseget ? Van ra library vagy valami speci megoldas ?
A hozzászólás módosítva: Aug 3, 2015
(#) szikorapéter hozzászólása Aug 3, 2015 /
 
Üdv. Olyan kérdésem volna hogy van egy Sharp LM64C35P kijelző. Ezt arduino unoval életre tudnám kelteni,vagy reménytelen? A válaszokat előre is köszönöm. Adatlap a kijelzőhöz.
(#) Kera_Will válasza andykaaa hozzászólására (») Aug 3, 2015 /
 
Attól függ miként állnak elő az értékek.
Jobb esetben a rendszeridőből lekérded és akkor megvan milisecben.
Aztán a két értéket összeadod milisec majd átváltod órára/percre egy függvényben.
Ha pedig más módon állt elő akkor azt változót/változókat valamilyen egységes mennyiségre konvertálod , majd elvégzed a műveletet és letárolod/kijelzed.
Roszabb esetben 60as számrendszerre(órák,percek,másodpercek viszonyai) kell megírnod egy átváltó/összegző függvényt.
Ide oda konvertálgatós játék lesz.
Keresgélhetsz ha találsz erre libraryt is.De az idő alatt lehet a saját megoldásodat is forráskódba tudod önteni.
Lehet hiába találsz erre valamilyen könyvárat, nem azt csinálja teljesen mint ami neked kell.
A hozzászólás módosítva: Aug 3, 2015
(#) RoliNyh hozzászólása Aug 5, 2015 /
 
Sziasztok, Csak most kezdtem ezt az egész arduino mizériát.
Írtam egy ilyen kódot:

analogReference(DEFAULT);

int voltageSensorValue = analogRead(A1);

float voltage = (voltageSensorValue * 5.0) / 1023.0;

Egy litium cella feszültségét akarom mérni. A Cella negítív lába a testen, a pozitív meg direktben az A1 lábon.
A problémám ezzel csak annyi, hogy nem valós értéket kapok vissza eredményként.
Konkrétan műszerrel mérve 3.79V mérek a lítium cellán, az arduino szerint pedig 4.22V a cella feszültsége.

Amúgy Arduino nano 328P.

Jól gondolom, hogy az érték azért csal ennyit, mert nem pontos a referenciám? Vagy mi más lehet a hiba szerintetek?

Köszi...
(#) csatti2 válasza RoliNyh hozzászólására (») Aug 5, 2015 / 1
 
Egyébként USB-ről táplálod a kártyát? Általában nem pontosan 5V már a kártyán a feszültség és az lesz a referneciafeszejed. Azt kéne majd megmérned és átszámítani, hogy úgy kijön-e. Ha igen, akkor használhatsz külső feszültség referenciát (pl. TL431) (vagy a beslőt, de az uC-ről uC-re picit más, ki kell ezért mérni), csak ne felejtsd el feszültségosztóval leosztani akkor a cellád feszültségét erre a szintre.
Egyébként nem szokéás direktben rákötni az analóg lábra sem külső feszütlséget. Legalább egy áramkorlátozó ellenállást és két védő schottky diódát illik azért betenni.
A hozzászólás módosítva: Aug 5, 2015
(#) RoliNyh válasza csatti2 hozzászólására (») Aug 5, 2015 /
 
Pontosan, a sima USB kábelről megy minden egyenlőre. 4,425V műszerem szerint...
Ha átírom erre az értékre a számolást máris jobb, 3,74 V lett az eredmény.

Milyen értékű áramkorlátozó kellene szted?
Egyébként ACS712 árammérő szenzor kimenetét is direkte kööttem az A0 lábra, oda is kéne az áramkorlátozó ellenállás?

A schottky -t az nem értem, hogyan?
A hozzászólás módosítva: Aug 5, 2015
(#) kapu48 válasza RoliNyh hozzászólására (») Aug 5, 2015 /
 
Akkor értelem szerűen legyen a képleted:
float voltage = (voltageSensorValue * 4.425) / 1023.0;
(#) csatti2 válasza kapu48 hozzászólására (») Aug 5, 2015 /
 
Arra azért nem lehet számítani, hogy mindig ugyanannyi lesz az USB feszültség... Akkor már inkább a belső referenciát kell használni, azt kimérni (az állandó marad, az AREF lábon lehet kimérni miután Internal refre állítottad a feszültség referenciát ÉS mértél legalább egyet az ADC-vel), és feszültség osztóval leküldeni 1V alá a mérendő értéket...
A hozzászólás módosítva: Aug 5, 2015
(#) csatti2 válasza RoliNyh hozzászólására (») Aug 5, 2015 /
 
Itt egy példa az egyik projektemből. Bekarikáztam akérdéses részt (itt usb kapcsolat meglétét vizsgálja viszont kell a feszültésgosztó, mert csak 3V3-at bír a mikrokontroller, ESD és túlfesz ellen pedig védenek a schottkyk [a BAT54S egy speciális tokozású cucc, két schottky is van benne]).
(#) RoliNyh válasza csatti2 hozzászólására (») Aug 5, 2015 /
 
Na igen, de ez mehet 5V -ig úgy tudom, így a lítium cella mex feszültsége 4.2V szóval a feszosztó szerintem elmaradhat. Az áramkorlátozót azt nem tudom milyenre kéne választani akkor.

És szerintem akkor marad a külső referencia feltéve, ha a TL431 tud 5V -ot... Még nem használtam...
(#) kapu48 válasza RoliNyh hozzászólására (») Aug 5, 2015 /
 
Előbb talán az stabil 5V tápfeszt kellene megoldani!

Mert a 4.425V táppal sosem fogsz tudni 5V ref. feszt elérni.
(#) RoliNyh válasza kapu48 hozzászólására (») Aug 5, 2015 /
 
Ez még csak a deszkamodell, a fejlesztés alatt van így. Ha kész a program, lesz stabil tápfesz is. Köszi...
(#) csatti2 válasza RoliNyh hozzászólására (») Aug 6, 2015 /
 
A feszosztó azért kell, mert a referenciafeszültség (körülbelül) 1V1 a belső ref forrás esetén, illetve 2V5 TL431 esetén (ez mondjuk növelhető, de akkor külső feszforrás is kell ami mindenképp nagyobb mint, amit a TL431-ből ki akarsz hozni). A legegyszerűbb használata a TL431-nek egyébként ha csak 2V5-öt állítasz elő vele, mert akkor nincs szükséged külső feszültségre (az USB is megteszi). Nagyobb feszhez pedig ugyanúgy szükség lesz ellenállásosztóra, mintha a jelet osztanád le.

Külső feszültségforrások esetén mindenképp javasolt beépíteni bemenet védelmet. Mi van ha egyszer véletlenül két cella feszültségét méred egy helyett? Az mindjárt bőven 8V lehet. Nem hiszem, hogy azon a 20Ft-on érdemes spórolni, amibe a két védődióda kerül, nélkülük pedig egy apró figyelmetlenség után is dobhatod el a mikrokontrollered.
(#) erdeidominik1999 hozzászólása Aug 6, 2015 /
 
Sziasztok! Egy dsc riasztóközpont kezelőjét szeretném összehozni az arduinóval, találtam hozzá több kódot, az egyik egész jól megy is, a ledeket már tudom vezérelni, bár azokkal is sokat szenvedtem, mert nem passzoltak a számok... Az a lényeg, hogy a lenyomott billentyűk viszont egyáltalán nem akarnak működni, amit olvas a kezelő felöl, ha azt iratom soros monitorra, annak az értéke mindíg 0. Csatolom a kódot, és nagyon megköszönném, ha valaki elmagyarázná a működését, mert nem értem, az itt lévő data és clk szál nem ugyan az, mint a wire data és clk szálai? Előre is köszi!
  1. #define CLOCKPIN 3
  2. #define DATAPIN 2
  3.  
  4. #define NO_FLAGS 0x0000
  5.  
  6. #define BUZZER 0x0001
  7. #define ARMED 0x0004
  8. #define TROUBLE 0x0002
  9. #define READY 0x0008
  10. #define ZONE_1 0x0080
  11. #define ZONE_2 0x0040
  12. #define ZONE_3 0x0020
  13. #define ZONE_4 0x0010
  14.  
  15. #define NO_KEY_PRESSED 0
  16.  
  17.  
  18. void setup() {
  19.   pinMode(DATAPIN, OUTPUT);
  20.   pinMode(CLOCKPIN, OUTPUT);
  21.   Serial.begin(9600);
  22. }
  23.  
  24. int readdata(int control)
  25. {
  26.  
  27.   int i,j=0,k=control;
  28.   int bitcount=0;
  29.   Serial.println(k);
  30.   for(i=0;i<8;i++)
  31.   {
  32.     j<<=1;
  33.     digitalWrite(DATAPIN,HIGH);
  34.     digitalWrite(CLOCKPIN,LOW);
  35.     delayMicroseconds(625);
  36.     //delay(1);
  37.     if(digitalRead(DATAPIN)==LOW)
  38.       j|=1;
  39.     digitalWrite(CLOCKPIN,HIGH);
  40.     delayMicroseconds(625);
  41.     //delay(1);
  42.   }
  43.   for(i=0;i<16;i++)
  44.   {
  45.     if(k&0x8000)
  46.       digitalWrite(DATAPIN,HIGH);
  47.     else
  48.       digitalWrite(DATAPIN,LOW);
  49.     digitalWrite(CLOCKPIN,LOW);
  50.     delayMicroseconds(625);
  51.     //delay(1);
  52.     digitalWrite(CLOCKPIN,HIGH);
  53.     delayMicroseconds(625);
  54.     //delay(1);
  55.     k<<=1;
  56.   }
  57.   if(j==0x108) return '1';
  58.   if(j==0x42) return '4';
  59.   if(j==0x44) return '7';
  60.   if(j==0x48) return '*';
  61.   if(j==0x21) return '2';
  62.   if(j==0x22) return '5';
  63.   if(j==0x24) return '8';
  64.   if(j==0x28) return '0';
  65.   if(j==0x11) return '3';
  66.   if(j==0x12) return '6';
  67.   if(j==0x14) return '9';
  68.   if(j==0x18) return '#';
  69.   if(j==0x90) return 'P';
  70.   if(j==0xA0) return 'A';
  71.   if(j==0xC0) return 'F';
  72.   return 0;
  73. }
  74.  
  75. void loop() {
  76.  
  77.   int i;
  78.   static int last_key_pressed=0,key_just_pressed;
  79.   static unsigned int flags=0x00;
  80.   static unsigned int buzzer_counter=0;
  81.  
  82.   while(Serial.available())
  83.   {
  84.     i=Serial.read();
  85.     if((i>='1')&&(i<='4'))
  86.       flags ^= (ZONE_1 >> (i-'1'));
  87.      
  88.     if(i=='r'){flags ^= READY;}
  89.     if(i=='a'){flags ^= ARMED;}
  90.     if(i=='t'){flags ^= TROUBLE;}
  91.     if(i=='b'){
  92.       flags |= BUZZER;
  93.       buzzer_counter+=16;
  94.       break;
  95.     }
  96.     if(i==' ')
  97.       break;
  98.   }
  99.   if(buzzer_counter){
  100.     buzzer_counter--;
  101.   }else{
  102.     flags &= ~BUZZER;
  103.   }
  104.   i=readdata(flags ^ key_just_pressed);
  105.  
  106.  
  107.   if(last_key_pressed==NO_KEY_PRESSED)
  108.   {
  109.     if(i != NO_KEY_PRESSED)
  110.       Serial.println((char)(i));
  111.   }
  112.   if((last_key_pressed!=i)&&(last_key_pressed==NO_KEY_PRESSED))
  113.     key_just_pressed=BUZZER;
  114.   else
  115.     key_just_pressed=NO_FLAGS;
  116.   last_key_pressed=i;
  117.  
  118.   delayMicroseconds(3333);
  119. }
(#) ALI hozzászólása Aug 6, 2015 /
 
Sziasztok.
Hogy tudom azt megoldani, hogy hőmérsékleteket mérek és el akarom menteni a mért értékeket?
Nem akarok semmi extrát web,sd csak simán össze van kötve a géppel a uno. 1-2 órás mérésről lenne szó.
(#) erdeidominik1999 válasza ALI hozzászólására (») Aug 6, 2015 /
 
A gépen akarod menteni, vagy nem értem minek van összekötve? És milyen sűrűn mérsz, mert nem mindegy. És hogyan szeretnéd tárolni, áramszünet esetén megőrizni, vagy csak programfutás alatt?
(#) Kovidivi válasza ALI hozzászólására (») Aug 6, 2015 /
 
EEPROM-ba el tudod menteni, vagy soros porton folyamatosan átküldöd az adatot, vagy pedig ha biztos nem lesz áramszünet, akkor elmentheted egy változóba, és ha készen vagy, átküldöd az egészet soros porton. Én az EEPROM-ot javaslom, mert ekkor jöhet bármi, nem veszik el az adat.
(#) icserny válasza ALI hozzászólására (») Aug 7, 2015 /
 
Ha PC-n szeretnéd naplózni az adatokat, akkor egy Processing nyelven megírt program is naplózhatja az adatokat. Van erre kész mintaprojekt is az Embedded Lab jóvoltából. Az ne zavarjon, hogy ChipKIT kártya szerepel a projektben, az is egy Arduino-szerű platformot használ (MPIDE).

A projektben lustaságból I/O lábakra kötötték a szenzor GND és VCC lábait (hogy ne kelljen huzalozni), ezt nem érdemes utánozni!
(#) ALI válasza erdeidominik1999 hozzászólására (») Aug 7, 2015 /
 
Csak tesztelés céljából akarom tárolni az adatokat. Ha minden stimmel akkor megy a végleges helyére, ott már nem kellenek a mérés eredményei.
Ezért is gondoltam, hogy össze kötve a géppel és a gépre menti az adatokat. 1-2 óra idejéig ha meg áramszünet van újra kezdem a tesztet.
(#) erdeidominik1999 válasza ALI hozzászólására (») Aug 7, 2015 /
 
Hát ha csak arra kell, hogy kipróbáld, aztán majd nem kell, akkor én a legegyszerübbet választanám: soros monitorra kiiratni, a gépen meg nyitvahagyni a soros monitort.
(#) erdeidominik1999 hozzászólása Aug 8, 2015 /
 
Sziasztok! A múltkor írtam, hogy i2c-vel szeretnék ledeket vezérelni, és hogy pcf8574-es ic-t szeretnék használni (vagy ha van olcsóbb, vagy jobb, akkor mi a száma) viszont mint látom ebből van 8574AP, AT, P, T a négy közül melyik kéne nekem?
(#) dokidoki válasza erdeidominik1999 hozzászólására (») Aug 8, 2015 /
 
Helló, a nálam meglévő adatlap erről az IC-ről ezekre nem tér ki. Akkor most álljak neki googlezni, hogy kiderítsem azt, hogy neked melyik lenne a jó? Olcsóbb és talán jobbként egy shiftregiszer lenne az esélyes, főleg a kaszkádólhatósága miatt.
(#) Ivan93 válasza erdeidominik1999 hozzászólására (») Aug 8, 2015 /
 
Szia! A "P"-jelűek through-hole (dip16), a "T"-jelűek smd (SO16) tokosak. Az "A"-t nem írja az adatlapja.
(#) icserny válasza erdeidominik1999 hozzászólására (») Aug 8, 2015 /
 
LED, LED mátrix, LED 7-szegmenses kijelzők vezérlésre szerintem a MAX7219 alkalmasabb (E-bay-ről humánus áron beszerezhetők).
A hozzászólás módosítva: Aug 8, 2015
Következő: »»   141 / 851
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