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   347 / 852
(#) gerleimarci válasza jeges hozzászólására (») Máj 21, 2017 /
 
Attiny24-re?
(#) szeg76 válasza gerleimarci hozzászólására (») Máj 21, 2017 /
 
Lehet csökkenteni a SoftPWM könyvtár RAM-igényét:
a SoftPWM.h fileban a
#define SOFTPWM_MAXCHANNELS 20
sort módosítsd.
(#) gerleimarci válasza szeg76 hozzászólására (») Máj 21, 2017 /
 
Igen, azt 10-re módosítottam még az elején. Ha leveszem 9-re és átírom 9 ledesre, az úgy pont 128 byte, de nem működik. Elég furcsa dolgokat produkál. Próbáltam 5-el, azzal sem jó.
Azt vettem észre, hogy attinyn a SoftPWM és a for ciklus együtt nem akar működni. Írtam egy sketch-et, amiben egyszerre az összes leden(9db) megy a fade (természetesen SoftPWM-el) és az jól megy. Átírtam ciklusosra, akkor már nem megy(UNO-n megy).
(#) david10 hozzászólása Máj 21, 2017 /
 
Sziasztok,
Találtam egy nyákon egy Atmel AT88SC25616C típusú CryptoMemory-t és szeretnék vele kísérletezni.
Csatoltam az adatlapját (amit a Google nehezen tálalt meg).

A Programming the CryptoMemory® Device for Embedded Applications dokumentáció szerint ha elküldöm I2C-n a B6 00 00 F0 parancsot (7.-ik oldal alja a dokumentációban), akkor hitelesítés nélkül is át kellene küldje I2C-n a teljes konfigurációs zonát, azzal a feltétellel, hogy mivel nem hitelesítettem, a védett bájtok helyére a fuse bit-et írja ki.

Az Arduinoval összeköttem, és az I2Cscanner program szerint a 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E,0x5F, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E címeken van jelen.

Probáltam ezzel a kóddal szóba állani az IC-vel, de semmi választ nem kaptam a sorosport monitoron:
  1. #include <Wire.h>
  2.  
  3. void setup() {
  4.   Wire.begin();
  5.   Serial.begin(9600);
  6. }
  7.  
  8. void loop() {
  9.   Wire.beginTransmission(0xB6);
  10.   Wire.write(0x00);      
  11.   Wire.write(0x00);          
  12.   Wire.write(0xF0);
  13.   Wire.endTransmission();  
  14.  
  15.    Wire.requestFrom(0xB6, 0xF0);    // 0xB6-os címről való kérelem, 0xF0 hosszuságú
  16.   while (Wire.available()) {
  17.     char c = Wire.read();
  18.     Serial.print(c);      
  19.   }
  20.  
  21.   delay(500);
  22. }


Szerintetek mi lehet a hiba? Mit nem csinálok jól?
A választ előre is köszönöm!
A hozzászólás módosítva: Máj 21, 2017
(#) orifab hozzászólása Máj 22, 2017 /
 
Szisztok. Arduinoval 7 szegmenses (dekóderen keresztül) kijelzőket akarok neghajtani úgy, hogy IR érzékelővel távirányítóról vegyem a jelet( ez megoldva), de a számok kijelzésénél ha csak egyet nyomok akkor a legutolsó világít, ha kettőt, akkor az utolsó előre ugrik "tizes" helyiértékre és a második egyes helyiértékre kerül. Stb. Esetleg ötleteket tudtok adni, hogy induljak el? Arra gondoltam hogy egy óra sw hasonló lehet... kösz a választ.
(#) KoblogPerGyok válasza david10 hozzászólására (») Máj 22, 2017 / 1
 
Szia!

240 byte hosszóságú adatot akarsz kiolvasni?

Wire.requestFrom(0xB6, 1); 

De ez sem lesz jó, mert a B6 címen nincs eszközöd.
(#) Kera_Will válasza orifab hozzászólására (») Máj 22, 2017 /
 
Milyen a hardver amivel kijelzőt hajtasz meg?
Milyen vonalon kommunikál a uCel ezzel?
Elvi rajz ?Enélkül nehéz bármit mondani.
(#) game4812 hozzászólása Máj 22, 2017 /
 
Sziasztok! Akadt egy problémám, amire biztos van egyszerű magyarázat, csak én nem jövök rá. Adott egy akvárium vezérlő, ami szeretném, ha megjegyezné, hogy mennyi időt világítottak a fénycsövek, és beállítani egy adott értéket, ahol jelez, hogy ideje cserélni. Arra gondoltam, hogy csak egyszerűen 6 percenként hozzáadok 0,1 órát egy számlálóhoz, ha az arduino adott kimenete aktív, és ezt eltárolom az EEPROM-ban. Tudom, float helyett lehetne unsigned long, stb., stb., de nem ez a fő baj vele, hanem hogy a kiemelt rész működik. De csak magában. Minden nap 10 órakor (ekkor kapcsolnak a csövek) elkezdi hozzáadni a 0.1-eket, de egyszer gondol egyet, és abbahagyja. Van, hogy 3 óra után, van, hogy csak 0.2-t ad hozzá, pedig 9 óra a világítás naponta. Ha újraindítom, akkor számol tovább.

A véletlenszerűség miatt arra gondolok, hogy nem a kódban van a hiba, hanem valami zaj lehet, de 4 dolog van relén, a szűrő csak este van kikapcsolva pár percre, CO2 még a fények előtt kapcsol, a fűtés nem kapcsol be legtöbbször, ha megy a fénycső, mert az is melegít, tehát az sem igazán lehet, plusz a fénycsövek. De ez a zavar nem annyira lehet az oka, mert az arduino nem fagy le, csinálja a dolgát, ha éppen akkor kapna egy zavart, amikor leolvas, akkor annak a +0.1 hozzáadásnak kellene maximum eltűnnie, nem? Hol keressem a hibát?

  1. #include <EEPROMex.h>
  2. byte eepneon1 = 0;                //eeprom címzés
  3. float neon1oh = 0;                 //ebben tárolja az eltelt időt
  4. float eepintervalhour = 0.1;       //6 percenként ennyit ad hozzá
  5. unsigned long previousMillistube = 0;
  6. unsigned long eepinterval1 = 360000;  //6 perc
  7. byte lastneonv;                   //a kimenet 6 perce high vagy low volt
  8. byte neonv;                       //a kimenet most high vagy low
  9. void setup()
  10. {
  11.   Serial.begin (9600);
  12. }
  13.  
  14. void loop()
  15. {
  16.   neonv = digitalRead (8);
  17.   if (neonv != lastneonv && neonv == HIGH)
  18.   {
  19.     lastneonv = neonv;
  20.   }
  21.   if (neonv != lastneonv && neonv == LOW)
  22.   {
  23.     lastneonv = neonv;
  24.     previousMillistube = millis();
  25.   }
  26.   if (neonv == LOW && (millis() - previousMillistube >= eepinterval1))
  27.   {
  28.     previousMillistube = millis();
  29.     neon1oh = (neon1oh + eepintervalhour); EEPROM.updateFloat(eepneon1, neon1oh);
  30.   }
  31.   Serial.println(neon1oh);
  32.   Serial.println(EEPROM.readFloat (eepneon1));
  33.   delay (1000);
  34. }


IRF540 nem logic level, tudom.
(#) atus1981 válasza game4812 hozzászólására (») Máj 22, 2017 /
 
Az UNO-t tápláld meg aksiról vagy elemről és rögtön meglátod, hogy a hálózati zaj-e a baj.
(#) Gabó válasza game4812 hozzászólására (») Máj 22, 2017 /
 
Relé modult, honnan táplálod? Lcd-t megint honnan? Az egyéb apróságok tápja? Remélem nem az uno 5Vos kimenetéről.
A hozzászólás módosítva: Máj 22, 2017
(#) game4812 válasza Gabó hozzászólására (») Máj 22, 2017 /
 
Így nézett ki bekötés előtt, a táp 12V 5A kapcsolóüzem, pumpák és LED szalag erről közvetlenül, az UNO a saját feszstabján keresztül, relék, DS3231, 1602LCD egy 7805ről, kivéve a háttérvilágítása, az az UNO-n PWM-ezve van, de 50/255 a kitöltése. LED szalag a fénycsövek bekapcsolása előtt dimmelve 0-255-ig, majd 100-ra állítva, amikor bekapcsolnak a csövek.

Amint bekapcsoltak a fények, az energiafogyasztás gyakorlatilag konstans, amíg hozzá nem nyúlok a kijelzőhöz, vagy etetéshez kikapcsolom a szűrőt, de ez este történik. Ami furcsa, hogy minden esetben elkezd számolni. (Tehát ha előző éjszaka újraindítom, reggel 10-ig lenne ideje összeszedni zavart, mivel a LED szalag, dózispumpák, fűtés ilyenkor működik, és megtehetné, hogy nem kezd el számolni. De számol, csak megáll a számlálás, és Arduino megy tovább vidáman.
A hozzászólás módosítva: Máj 22, 2017
(#) Gabó válasza game4812 hozzászólására (») Máj 22, 2017 /
 
Akkor ahogy sejtettem. Nekem a megoldás az lett, hogy az UNO (nálam mega van) 5Vos kimeneti tápja kb az RTCnek meg (ETH Shieldnek) ad csak tápot. Ill a relés blokk optocsatolónak ad még 5Vot. A többi (LCD, szenzorok, relé modul relé tekercs része stb), egy külön DC-DC konverterrel van leválasztva.
(#) KoblogPerGyok válasza game4812 hozzászólására (») Máj 22, 2017 /
 
Szia!

Sajnos nem látom a teljes kódod, de néhány észrevétel, ha ezeket tudtad már akkor bocsánat!

1:
Ha float típust növelsz egésszel valahol, akkor az egész után tegyél egy nullát, természetesen a tizedespont után.

float x;
x+=1; //Nem minden esetben lesz jó, ez helyett:

x+=1.0; //Így tuti nem csordul túl.


2:
If szerkezetekben is, ha egy float típust hasonlítasz össze egy általad a kódban megadott egésszel, akkor is ezt a trükköt kell használni:

float x;

If (x>1) //nem minden esetben jó.

Inkább:
If (x>1.0)


3:
float neon1oh = 0.0;   

4:
Az EEPROM mennyi írást bír el? Ha 1000 akkor 100óra. 10000 akkor több, de ez gondolom csak az adott címen található szektorra vonatkozik, de sejtésem szerint mindig ugyanoda/ugyan azokra a byte-okra írod az eredményt. Lehet nem így van, mert ezt megoldottad, akkor bocsánat!

5:
EEPROM.updateFloat után nem kell delay(5)? Ez az EEPROM-tól függ, de nem árt neki.
(#) game4812 válasza KoblogPerGyok hozzászólására (») Máj 22, 2017 /
 
Gabó, atus1981:
Húzzam ki az LCD háttérvilágítást, és annyi? Csak az megy róla gyakorlatilag, ami áramot is fogyaszt. kipróbálom majd egy 9V-os elemről is, hátha, csak azt reméltem, van valami kézzel fogható oka, például, hogy az EEPROM-mal foglalkozó rész érzékenyebb a zavarokra, mivel a program amúgy tökéletesen fut, volt már 80 napos egybefüggő működésem is, és akkor is frissítettem, azért indult újra.

A float-tal kapcsolatos dolgot nem tudtam, ezt átírom, teszek oda delayt is. Programozással foglalkozni ennél a projektnél kezdtem el, tehát sokat kell még tanulnom. Az EEPROM címének váltásra vannak libraryk, de nem foglalkoztam vele, mert a gyártó szerint 100 000 írási ciklust bír, de itt 1 milliónál is többet bírt a gyakorlatban. A garantálttal számolva, kb. 3 évet bírna. A csövet 1-1,5 évente cserélni kell, mert a spektruma eltolódik, fényereje csökken, és az a terv, hogy mivel ilyenkor számítógépről nulláznom kellene az értékeket, ilyenkor a címzést is megváltoztatom.
A hozzászólás módosítva: Máj 22, 2017
(#) Electricboy hozzászólása Máj 22, 2017 /
 
Sziasztok!
Vettem egy 128x64es oled kijelzőt rá küldtem a libaryből a teszt programot és azt írta hogy hibás a magasság méret, kíváncsiságból ki próbáltam a 128x32 libet is azzal jó volt elsőre lefutottak az animációk. Mutatok pár képet, létezik hogy ez tényleg 32 pixel magas, ilyen kialakításból még nem láttam ebben a magasságban? Valami ilyet kellett volna kapnom, de az én képemen látni hogy csak a fele van meg. Én vagyok béna vagy átcseszett a kiccikinai?
(#) sirály12 válasza Electricboy hozzászólására (») Máj 22, 2017 /
 
Olyan mintha minden második sor hiányozna. Biztosan hozzávaló libet használsz? Minden beállítás jó?
(#) Electricboy válasza sirály12 hozzászólására (») Máj 22, 2017 /
 
Ebayen ezt írta: 0.96" I2C IIC SPI Serial 128X64 OLED LCD Display SSD1306 for 51 STM32 Arduino
Nem sok lib van erre, de ott van a hiba képen adafruit ssd1306 tehát gondolom jó a header. Nem módosítottam semmi beállítást, az első képen gyakorlatilag a sample file egy az egyben fut. Nekem is úgy tűnik mintha minden 2. kimaradna, kvázi szét nyújtja.
(#) Gabó válasza game4812 hozzászólására (») Máj 22, 2017 /
 
Reléid tekercse honnan kapja a tápot? Unoról? Mert az nem jó.
Ami az uno 5Vjáról menjen, az legyen minél kevesebb. Max ami nagyon keveset fogyaszt.
(#) game4812 válasza Gabó hozzászólására (») Máj 22, 2017 /
 
L7805-ről.
(#) TavIR-AVR válasza Electricboy hozzászólására (») Máj 22, 2017 /
 
Létezik SH1306 illetve SSD1306 chippel is.
Valamint tényleg létezik 32 soros is (keskenyebb/alacsonyabb) kijelző.

reklamálj, hogy nem megy az ajánlott LIB-bel ill. a képet is csatold neki... Adjon javaslatot.

DE a SSD1306.h-ban is állítsd be a felbontást! Többféléhez is jó a lib! Alapban 128x128-asra van állítva!
(#) icserny válasza Electricboy hozzászólására (») Máj 22, 2017 /
 
"de ott van a hiba képen adafruit ssd1306 tehát gondolom jó a header."
Az a "hiba" nem a kijelző hibája, hanem valamit rosszul konfiguráltál be (nem a te kijelződhöz van beállítva a program).

Konkrétan az SSD1306_LCDHEIGHT értéke nem 64, pedig a program azt szeretné, ha 64-re lenne állítva...
(#) david10 válasza KoblogPerGyok hozzászólására (») Máj 22, 2017 /
 
Köszönöm a válaszodat!
Szerintem ameddig egy 24C64-es eepromból nem tudok kiolvasni egy bájtot a digitalWrite és digitalRead parancsokkal, addig nincsen amit csináljak a kriptó memóriával.
Találtam ezt a leírást, ez szerint megfogok probálni kiolvasni bájtokat 24C64-es eepromból.
(#) proba válasza szeg76 hozzászólására (») Máj 23, 2017 /
 
Lehet azzal kezdve, hogy a változót byte-nak deklarálja. Akkor lehet a túlcsordulás 255-1 re történik, igy még a határok vizsgálatával sem kell foglalkozni ha a fényerő eltérés marad végig. (meg ha nem fér talán még némi hely is marad.)
(#) nzozz hozzászólása Máj 23, 2017 /
 
Sziasztok!
Múltkor elég jó javaslatokat kaptam arduinohoz használatos szenzor témában, most megint hasonló ügyben kérnék tanácsot: folyadék (autó motorolaj, hűtőfolyadék) viszonylag pontos nyomás- és hőmérsékletméréshez keresnék érzékelőket. Mérni kb. 0-150°C és 0-6 bar tartományban kéne (ekkora értékek valószínűleg sosem lesznek, de valamennyivel fölé kell becsülni...), viszont a környezeti hőmérséklet lecsökkenhet akár -30°C -ra is (az idei tél alapján), ha van ennek jelentősége.
Milyen szenzorokat tudnátok ehhez javasolni?

Köszönöm
(#) KoblogPerGyok válasza nzozz hozzászólására (») Máj 23, 2017 /
 
Szia!

Ez kb 6 bar, de nem láttam, hogy mekkora hőméséklettet bír ki, valamint a menetemelkedést is meg kell nézni, nehogy eltérés legyen. Utána kell nézni, hogy tuti bírja-e a kellő hőmérsékletet is, vagy sem. (Nem tudom mi a neve, azért írok linket.)

Bővebben: Link

Hőmérséklet:
DS18b20 vagy ehhez hasonló, nem tudom, hogy ekkora tartomány elég-e.
A hozzászólás módosítva: Máj 23, 2017
(#) Kera_Will válasza nzozz hozzászólására (») Máj 23, 2017 /
 
Olyan detektort , érzékelőt kell keresni amikre automobil és military special megjegyzések szerepelnek az adatlapjain ... ennyi .
(#) gerleimarci válasza nzozz hozzászólására (») Máj 23, 2017 /
 
Nyomástávadó
digitális hőmérséklet érzékelő -55°C-től +125°C-ig, vagy ha ez nem lenne elég, akkor PT100-as valami alacsony zajú OPAval.

Szerintem ide nem kell még automobil vagy military class minősítés, nem múlnak rajta emberi életek.
A hozzászólás módosítva: Máj 23, 2017
(#) jeges válasza nzozz hozzászólására (») Máj 23, 2017 /
 
MLX90614 .....
(#) nzozz válasza jeges hozzászólására (») Máj 23, 2017 /
 
És hogyan kéne ezzel magának a folyadéknak a hőmérsékletét mérni?
(#) jeges válasza nzozz hozzászólására (») Máj 23, 2017 /
 
milyen folyadék milyen környezetben?
olaj...viz?
Ezel érintés nélkül is tudsz folyadék hőmérségletet mérni (infra hömérö) elég széles alkalmazási kör!
De ez csak javaslat.....felhasználást és beépitést te választod meg......
ha még digitális érdekel akor ott van még max6675 K type szenzorak elég szeles tartoményba tudsz mérni hömérségletet!
A hozzászólás módosítva: Máj 23, 2017
Következő: »»   347 / 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