Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Nekem erre egy Hestore link jön be, nem tudom melyik az.
![]() A libet egyelőre nem tlálom.
Ha erre rákattintok nekem bejön,https://github.com/bitluni/ESP32Lib.
Mert az esp32 kapható a hestore-ban, így rögtön magára irányítja a linket. Próbáld meg kézzel kijelölni a teljes linket, és átmásolni a böngészőbe!
Vagy így Bővebben: Link A hozzászólás módosítva: Ápr 9, 2023
Mobil kijelzőt lehet működtetni vele? Mert amit ezekhez szoktak használni, azoknál sokkal jobb és érintős, hasonló árban.
Miért írod percenként? Az ESPnek marha nagy ramja, van én ott gyűjtöm az adatot, és kb óránként írom ki. Persze megvan az a veszélye, hogy áramkimaradás esetén elveszik valamennyi adat...
Sziasztok
Vettem innen HEStore-ból ESP32 modult. Az a gondom vele, hogy nem tudom programozni a panelen lévő USB csatlakozón keresztül. Arduino IDE 1.8.19-el próbáltam, Win7 x64 alatt. Egy hibaüzenetet ír, A fatal error occurred: Failed to write to target RAM (result was 01070000) Az Arduino IDE-ben a soros monitoron reset után látszanak az induláskori kiírások, tehát a gép felé jó a kommunikáció, programozni nem tudom. A problémára rákeresve azt írták többnyire, hogy driver, vagy a nem megfelelő feszültség szintek okozzák. Külső FT232 átalakítóval hiba nélkül programozható, az ESP32 működik. Elvileg CH340 USB-Soros átalakító van a panelen, de le van csiszolva az ic-ről a feliat, megnézve egy CH340 lábkiosztását, nem stimmel a panelen lévővel, sem az USB kommunikációs lábak, sem az RX, TX lábak nem ott vannak az IC-n, más a panel vonalvezetése is a neten található képekkel összehasonlítva. Ennél a panelnél 4-5 láb az usb, 15-ös RX, 11-es TX. A CH340 pedig 5-6 USB, 2-es RX, 3-as TX. A kérdésem annyi lenne, hogy miféle IC lehet ezen a panelen, lehet, hogy másik driverrel működhetne is, vissza nem küldöm, még ha egyszerűen hibás is, külső átalakítóval programozható.
Nem derült ki , hogy azt a drivert ami a jobb alsó részen van fel raktad-e? És még a ch340-et is fel lehet rakni (ha nincs fent). Mikor a pc-hez csatlakoztatva van modul ,a gépház -> eszközök közt elvileg látni kéne hogy milyen soros USB illesztő van rajta, és ahhoz is kéne telepiteni egy drivert, ha a fenti tipp nem oldotta meg.
Nagy eséllyel ott lesz a driver ahol Jonni mutatta, de ha mégsem, akkor hardverazonosító alapján bármilyen eszközt be tudsz azonosítani 99.5% -ban és megkeresni a szükséges drivert hozzá.
Az eszközkezelőben az ismeretlen hardver tulajdonságainál a részletek fülnél a hardverazonosítók lapon ott lesz egy karaktersorozat (képen kékkel jelölve) amit kimásolsz jobb klikkel, és beteszed a google keresőjébe, megszámlálhatatlan találatot fogsz kapni.
Szia
Konkrétan nem írtam, de persze, hogy fent van a driver (próbáltam már pár verziót, azzal kezdtem, amit mutattál, mind ezt csinálta). A hardver azonosító alapján is CH340. USB\VID_1A86&PID_7523&REV_0254 A soros monitort megnyitva az ESP által küldött adatokat mutatja az Arduino program, de programozáskor hibás memória területre hivatkozva megáll a programozás. Ha valakinek lenne ugyanilyen panelje, ugyanezzel az IC-vel, és Neki működik, akkor elengedném a dolgot, hogy hibás az IC. Csak érdekesség, hogy ezen a panelen nincs rajta a CH340 mellett lévő 12MHz-es kvarc sem.
Ha az eszközkezelőben nincs sárga felkiáltójel, és minden hardver rendben van, és még ismeretlen eszköz sincs, akkor az már nem driver probléma lesz.
Ui.:Esetleg megpróbálhatsz másik CH340 drivert. Pl innen, vagy bárhonnan. A hozzászólás módosítva: Ápr 10, 2023
Én még arra gondolok, hogy nem lehet hogy fordítás előtt nem megfelelő processzort állítottál be? Az még _talán_ okozhatna ilyesmit. Bár típusazonosításkor ki kellene derülnie.. Akkor passz, csak egy ötlet volt.
Szia!
Sajnos nem értek ehhez, de ha minden ok, mármint látod a sorosporton a kommunikációt, akkor a driver jó. Elvileg hardver is jónak mondható, mert mennek az adatok. Mik lehetnek szerintem a hibák: -Az Arduino IDE-ben nem megfelelő cél board-van kiválasztva. -Másik dolog, hogy némelyik IDE-ben old boot loadert kell választani, de másik hardvernél fordult ez elő lehet itt is hasonló a gond. -Vagy ki lettél tiltva a saját lapkádból, mert a megfelelő regiszter nem enged piszkálni. Cserélj Aruino IDE-t, lehet régebbi kell neked, nem feltétlen újabb, de azt is ki kell próbálni. Esetleg még USB Y kábellel oszt el a terhelést, hátha. A hozzászólás módosítva: Ápr 10, 2023
Az SD elég lassú,12 kB-t kéne átírni percenként,majd megnézem valójában mennyi.Az áramkimaradást amúgy is kezelni fogom,töredezett adatok közt keresgélni nem szerencsés.
Azért megvárom Asch válaszát,a fájnéküli SD írást,hogy lehet fizikailag megvalósítani. Az szimpatikusnak tűnik,úgy sok év elférne az SD-n.
ESP32 Dev module van kiválasztva, ezzel a beállítással hiba nélkül sikerült FT232-vel programozni. Még azt megnézem, lehet, hogy 5V-ot ad ki, az ESP-nek 3,3V kellene.
Az ESP és a CH340 között RX-TX lábakon 1200ohm ellenállások vannak sorosan. Az eszköz kezelőben rendben megjelenik soros portként felkiáltó jel nélkül.
Szia!
Ehhez a board-hoz olyan rajzot találtam, ahol 470Ohm-ok vannak beiktatva a soros vonalba. Bővebben: Link Ha kívülről kapcsolódsz rá, ezek az ellenállások ugye nincsenek útban. A CH Tx - ESP Rx vonalban lévő ellenállást én lentebb csökkenteném.
Köszönöm mindenkinek a segítséget, megoldódni látszik a probléma.
Átdugva a Wemos panelt USB3 portba elsőre működött, USB2 porton a fent említett hibát produkálja bármelyik porton. Gondoltam, hogy az USB3 nagyobb áramot enged meg, így kipróbáltam, hogy külső tápot adtam a panelnek, USB2-n akkor sem volt hajlandó felprogramozni. Itt jött még egy érdekesség, van egy pár NodeMCU-ESP-32S boardom, az meg csak USB2-n működik, USB3-ba dugva eszközkezelő szerint "Az eszköz nem indítható el. (Kód: 10)" Sárga felkiáltó jeles lesz az eszköz. Ezen CP2102 átalakító van. Nem foglalkozok olyan sokat a programozással, majd átdugdosom mikor melyikkel szeretnék foglalkozni.
Igen, USB3 porton működik, nem értem, hogy miért, de ott megy.
Sziasztok,
Egy Arduino Megát összekötöttem egy I2C-vel és egy négysoros kijelzővel. A Megát a Tavir-től vettem, nem eredeti. Nagy gondom nincs vele, csak egy furcsa jelenség jött velem szemben. Miután feltöltöttem a Hello World-öt, jól működött az egész, de egy-két újraindítás közben véletlenül összeérintettem a labortápom + és - ágát (az Arduino Boardon kívül, tehát az Arduino elvileg csak egy táp elvétel, majd visszaadás ciklust érezhetett belőle). Ekkor az Arduino újraindult, és bár tökéletesen működik, azt vettem észre, hogy a bootolás érezhetően, kb. 30-40 százalékkal lassabb lett. A programot újra feltöltöttem, a lassulás megmaradt. Megmondom őszintén, nem nagyon értek az Arduino belső felépítéséhez, és főként az ilyen-olyan bootloader témákhoz. Sérülhetett a boardon, vagy software szinten bármi, ami egyelőre jól bootol az eszköz, csak lassabb lesz a bootolás? Köszi!
Örülök neki,ha a hozzászólásomból bármit fel lehet használni,csak a benne feltett kérdés veszett homályba.A kérdés az SD kártya túl használódással volt kapcsolatban.Egy percenként írok rá,az adatok mindig más helyre kerülnek,de állítólag a fájlrendszer frissítése mindig egy helyre.Asch említett egy fájl nélküli írást,nem értettem,de még nem válaszolt? Pipi ajánlotta írjam 1 perc helyett 1 óránként és közte máshova mentsem,ez jó ötlet kipróbálom.Eddig minden egy fájlba ment,arra gondoltam havonta mindig újat nyitok,akkor vajon a frissítések máshova kerülnek? Ez később a visszakeresést is könnyítené.
A hozzászólás módosítva: Ápr 12, 2023
Offlájniában voltam, olvastam a kérdést, terveztem is válaszolni.
Ez a lib, amivel ezt a fajta logolást meg lehet csinálni: https://github.com/rizsi/playing_with_MCUs/tree/master/libraries/ri...logger Sajnos nem túlságosan van dokumentálva, mert hobbi projekteknél az ilyesmi nálam sokszor elmarad. Egyetlen hobbi projektben használtam, jól működött, de a kódra nézve olyan félkész érzetem van így utólag... Elkezdtem egy SD kártya libet is csinálni, de végül töröltem az egészet és az Sd2Card.h libet hívja tovább az API, amit csináltam: https://github.com/rizsi/playing_with_MCUs/tree/master/libraries/ri...sdcard Ezt az API-t használja a logger a kártya írásra és olvasásra. Nem emlékszem, hogy az Sd2Card lib melyik verziója működött. Ha számítógépen akarod megnézni a logot, akkor Linux kell hozzá, ott simán egyetlen nagy fájlként is látod az SD kártya teljes tartalmát. Windowson szerintem drivert kellene írni hozzá, ebbe nem vágnék bele. Erre a problémára volt egy áthidaló ötletem később, de azt nem csináltam meg: az SD kártyára létrehozok egyetlen nagy fájlt, ami töredezés nélkül van, és ennek a blokkjait írogatom felül. Ezzel a módszerrel a fájl Windowsos gépen is látható volna, és onnan is egy egyszerű programmal ki lehetne nyerni a logokat.
Csak egy szösszenet a túlhasználásról. Én ilyen adatokat mentettem SD kártyára, FAT32 fájlrendszer mellett:
Másodpercenként egy sor, hetente egy új fájl (egy GPS vevő szűrt adatai). 650 MB-nyi adat futott fel a kártyára minden gond nélkül 2017 21. hete és 2020 30. hete közötti időszakban egy autóban, annak minden áldásos hatása mellett (rázkódás, hideg, meleg stb.). Amíg használtam, semmilyen gond nem volt. Mindössze annyit tettem, hogy a régi fájlokat nem töröltem a kártyáról csak átneveztem őket.
A 30-40%-ot hogyan mérted ki? Mennyi idő volt a boot és mennyi lett? A képernyőn jelenik meg ennyivel később az első információ? Ez már túl sok? Én ha ezt meg akarnám fejteni, akkor először a tápot, aztán a bootloadert, aztán magát a programot mérném meg, hogy mennyi idő alatt indul be és melyikkel lehet probléma.
Oké köszi,az első megoldás sajnos nekem még magas.A hosszú fájlon gondolkodom,az egy évre kb 100 MB lenne.Egyenlőre megcsinálom az egy órás SD írást,az sokat segít a problémán. Vajon amit említettem,hogy havonta új fájlt nyitnék javítana a helyzeten?
Ha úgyis ritkán írod, akkor bármennyit nyithatsz, vagy hozzáfűzhetsz
Üdv.
Mivelhogy nem tudok programot írni ezért MI hez fordultam. Egy ellenőrzést kérek rá ha lehetséges: A program az alábbit kell tudja. Napelem pillanatnyi termelés ellenőrzés Elsődleges hálózat ellenőrzés. Napelem-hálózat fogyasztás. Ideális eredmény 0 Szabályozható fogyasztó fogyasztás csökkentés vagy növelése a napelem és a hálózati fogyasztás különbözete alapján. Negatív szám esetén csökkentés pozitív szám esetén növelés annyival hogy 0 legyen a különbség. Ellenőrzés másodpercenként óra #include <Wire.h> #include <LiquidCrystal_I2C.h> #define RELAY_PIN 9 #define SOLAR_PIN A0 #define GRID_PIN A1 LiquidCrystal_I2C lcd(0x27, 16, 2); int solarOutput; int gridOutput; int consumption; int regulatedConsumption; bool programActive = false; unsigned long startTime; void setup() { pinMode(RELAY_PIN, OUTPUT); pinMode(SOLAR_PIN, INPUT); pinMode(GRID_PIN, INPUT); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Solar Panel:"); lcd.setCursor(0, 1); lcd.print("Consumption:"); startTime = millis(); } void loop() { int currentHour = hour(); // Check solar output solarOutput = analogRead(SOLAR_PIN); // Start program if solar voltage is detected during regulated time period if (currentHour >= 6 && currentHour < 22 && solarOutput > 0 && !programActive) { programActive = true; startTime = millis(); } // Check if regulated time period has ended if (programActive && (millis() - startTime) > 3600000) { digitalWrite(RELAY_PIN, LOW); programActive = false; } // Check grid output and calculate consumption gridOutput = analogRead(GRID_PIN); consumption = (1023 - gridOutput) * 100 / 1023; // Calculate regulated consumption if (programActive) { regulatedConsumption = consumption - ((solarOutput * consumption) / 1023); // Limit regulated consumption to range of 0-100% if (regulatedConsumption < 0) { regulatedConsumption = 0; } else if (regulatedConsumption > 100) { regulatedConsumption = 100; } // Adjust consumption based on regulated consumption analogWrite(RELAY_PIN, regulatedConsumption * 255 / 100); } else { digitalWrite(RELAY_PIN, LOW); } // Update LCD display lcd.setCursor(13, 0); lcd.print(" "); lcd.setCursor(13, 0); lcd.print(solarOutput); lcd.setCursor(13, 1); lcd.print(" "); lcd.setCursor(13, 1); lcd.print(consumption); // Check solar output every hour if (currentHour != hour() && currentHour >= 6 && currentHour < 22) { solarOutput = analogRead(SOLAR_PIN); if (solarOutput > 0) { programActive = true; startTime = millis(); } } delay(1000); }
Kicsit variáltam rajta:
A program az alábbit kell tudja: Napelem pillanatnyi termelés ellenőrzés. 0-5v 5v-100% Szabályozható fogyasztó 2000w szabályozható 0 és 100% Elsődleges hálózat fogyasztás ellenőrzés. Szabályozható fogyasztó feszültség csökkentés vagy növelés az alábbiak szerint: Napelem-Elsődleges hálózat=Pozitív szám növelni a fogyasztást, 0 és 100% közti értékek. Legkisebb változás 1% Napelem-Elsődleges hálózat=Negatív szám csökkenteni a fogyasztást, 0 és 100% közti értékek. Legkisebb változás 1% Ellenőrzés másodpercenként. Óra. 06:00 és 22:00 óra közt legyen csak vezérlés. Áram kimaradás után újraindítás. #include <TimeLib.h> // Napelem bemenet const int solarPin = A0; // Fogyasztó bemenet const int consumerPin = A1; // Fogyasztó kimenet const int outputPin = 9; // Maximális fogyasztó teljesítmény const int maxPower = 2000; // Legkisebb változás a fogyasztó vezérléséhez const float minChange = 0.01; // Elsődleges hálózat fogyasztásának kezdeti értéke float consumerPower = 0; // Legutóbbi vezérlőérték a fogyasztóhoz float lastControlValue = 0; // Napelem pillanatnyi termelése float solarPower = 0; // Előző óra értéke int prevHour = -1; void setup() { pinMode(outputPin, OUTPUT); Serial.begin(9600); setTime(6, 0, 0, 1, 1, 2020); // beállítjuk az órát } void loop() { // Kiszámítjuk a fogyasztó vezérlőértékét float controlValue = calculateControlValue(); // Kikapcsoljuk a fogyasztót, ha a vezérlőérték kisebb, mint az előző érték if (controlValue < lastControlValue) { digitalWrite(outputPin, LOW); } // Beállítjuk a fogyasztó kimenetének PWM értékét a vezérlőértéknek megfelelően analogWrite(outputPin, controlValue / 100 * 255); // Elmentjük a legutóbbi vezérlőértéket lastControlValue = controlValue; // Mérjük a napelem pillanatnyi teljesítményét solarPower = analogRead(solarPin) * 5.0 / 1023.0; // Mérjük az elsődleges hálózat fogyasztását consumerPower = analogRead(consumerPin) * 5.0 / 1023.0 * maxPower; // Óra ellenőrzése int currentHour = hour(); if (currentHour >= 6 && currentHour < 22 && currentHour != prevHour) { // Az óra beállítása setTime(currentHour, minute(), second(), day(), month(), year()); prevHour = currentHour; } // Várunk 1 másodpercet delay
sziasztok!
nagyon kezdő vagyok, vagy édesanyám közösképviselője kiakasztott ![]() mi kellene hozza? elore is koszonom a segitseget! udv b.
HI
Szerintem , "többe kerül a leves mint a hús" majd a végére. Ha neked csak az eredeti arduino felel meg akkor az önmagába KB 7000ft és akkor még csak a paneled van meg
koszi a valaszt! az arduino mar megvan itthon. de ha azt mondjatok, hogy felejtos akkor beadom a derekam es kipengetem
![]() |
Bejelentkezés
Hirdetés |