Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
- Tudástár AMD Radeon undervolt/overclock
Általános témák
LOGOUT.hu témák
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [Szevam:] Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [sziku69:] Szólánc.
- [Re:] [Luck Dragon:] MárkaLánc
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [bitpork:] Fogyasztásra ítélve
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
GAMEPOD.hu témák
Útvonal
Fórumok » Egyéb hardverek » Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)Téma összefoglaló
Hozzászólások
Ezt meg csak úgy itt hagyom: https://checkio.org
Nem C, de JS és Python feladatokat kell megoldani, közben rengeteget lehet tanulni.
Javascript és sok más oktató anyag egyébként van a https://hu.khanacademy.org/ oldalon.
JozsBiker
aktív tag
UNO -t és Nano -t használok.
Az első verzióban ezzel próbálkoztam:
void getMinMaxValue()
{
int sensorValue; //value read from the sensor
sensorMin = 1024;
sensorMax = 0;
uint32_t start_time = millis();
while((millis()-start_time) < 200)
{
sensorValue = analogRead(CURRENT_SENSOR);
if (sensorValue > sensorMax)
{
sensorMax = sensorValue;
}
if (sensorValue < sensorMin)
{
sensorMin = sensorValue;
}
}
}
Ezt hívtam meg a loop -ból aztán a Min -ből és Max -ból különbséget számoltam és azt szoroztam egy értékkel. Tiszta szinuszos jelalaknál jó is nyilván, csak a fogyasztók jó része nem olyan, ezért szeretném továbbgondolni.
rita7107
aktív tag
Köszönöm Neked, és janos250 segítségét!
Neki indulok, mert tanulni sosem késő, és sosem szégyen!
weiss
addikt
Az is lehet, hogy az Uno/Nano 10 bites ADC-je ide kevés lesz. A ZMCT103C 5 A-ig mér, a szkóp meg 0,3-at fogyaszt, az csak 1/16-a a skálának.
I did nothing, the pavement was his enemy!
LustaDick123
tag
Szia,
Kezdő vagyok én is a témában, csendes olvasója a topiknak. Én pár hónapja hasonló gondban voltam, mint te, annyi a különbség, hogy én elsősorban a gyerekeknek kerestem valami hasznos elfoglaltságot, ami relatíve gyors sikert jelent számukra és látványos.
Mivel nekem nem volt semmiféle eszközöm itthon így adta magát, hogy vásároljak valamiféle „kezdő szettet”, a választásom az Eleggo készlete lett: https://www.elegoo.com/products/elegoo-uno-most-complete-starter-kit
Ebben van egy csomó alaplecke, amivel megtanulható az egyes klasszikus szenzorok kezelése, idővel már kombinálhatóak egymással. A honlapról letölthető a CD-n adott manual is:
https://www.elegoo.com/blogs/arduino-projects/elegoo-uno-r3-project-the-most-complete-starter-kit-tutorial
Nyilván minden megvásárolható külön-külön is és van 1000 hasonló készlet a kínai webshopokban, kezdők számára teljesen jól használható egy ilyen készlet, talán így egyben olcsóbb is (európai amazonról rendelve pár nap alatt itt volt).
Ahogy a többiek is írták, ha elakadás van, akkor a Google a segítség, de sokat ötletet merítettünk az Arduino hivatalos oldaláról is: https://projecthub.arduino.cc/
A 10bit ADC az 5A méréshatárt 1024 részre osztja. Előjelesen 512-re. Az még 0,01A precizitás.
A gond egyértelműen a számolás menetével van. Ahogy korábban írtuk, a pillanatnyi csúcsok értékéből nem következik egyértelműen a folytonos áramfelvétel.
Itt vannak ezek a jelalakok. Egyértelműen belátható, hogy más más fogyasztás (és ezáltal folytonos áram) tartozik a piros-zöld-kék áramokhoz. A peak-to-peak mégis azonos mindnél, így a számolás ugyanazt fogja adni.
Azért írtam az RMS-t, mert az egy közelítő integrált fog adni a görbe alatti területekre (gyakolatilag kicsi hasábok területei lesznek, melyek magassága a pillanatnyi érték, szélessége a mintavételi idő.).
Kódban ez valahogy így nézne ki:void Measure()
{
int mAmps=0;
uint32_t RMS=0; //ide jó sok nagy szám befuthat
int RMScount=0;
uint32_t start_time = millis();
int sensoValue;
while((millis()-start_time) < 200)
{
sensorValue = analogRead(CURRENT_SENSOR);
RMS+=sensorValue*sensorValue;
RMScount++;
}
RMS = RMS/RMScount;
RMS = sqrt(RMS);
RMS = RMS * tapasztalatitenyezo; //ha esetleg kéne, a szorzót meg lehet állapítani, talán lineáris is elég
}
Egyébként ha akarsz rajta pontosítani, akkor érdemes tesztelgetni, hogy az ADC prescaler felgyorsításával javul e a pontosság. Ugyebár akkor a mérés maga pontatlanabb lesz, de a mérések mennyisége több lesz, így jobban közelíti a függvény alatti területet a pici téglalapok átlaga.
Szerk.: A csatolt kép lemaradt
[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
weiss
addikt
Írta, hogy próbált másik módszert, és azzal sem volt jó. Személy szerint én kiíratnám a mért értékeket, és kézzel kiszámolnám, hogy egyáltalán jó-e az input.
[ Szerkesztve ]
I did nothing, the pavement was his enemy!
Oké, csak ő most mégis ezt a kódot dobta be, hogy szeretné továbbgondolni, ebben akartam segíteni.
A korábban linkelt másik kód önmagában nem fog működni, csak ha kalibrálja. Abban van egy konstans és egy elsőfokú korrekció, idő alapon integrál (feltételezi, hogy két mérés között más idő telik el).
Ha tiszta jelalaknál jól működik, akkor én nem gyanakodnék a nyers adatra, inkább az utófeldolgozás kétséges.
Mások számára a kondi fáradós, nekem farad-os...
JozsBiker
aktív tag
Köszi hogy foglalkoztok vele!
Én is azt találtam az RMS érték számításra amit a #19006 -ban írtál: négyzetösszegek képzése, osztás a minták számával aztán gyökvonás. Érdekes lenne tudni hogy a kézi mérőműszerek is így számolnak-e :-). Szerintem is a feldolgozással lesz gond, talán valami nüansznyi dologgal szivatom magam. Mindenképp megírom ha jutok valamire.
Janos250
őstag
Én nem vagyok villanyász, és nem is értek hozzá, de én már az elején elakadtam. Az elveknél!
Ha egy trafó primer árama megy keresztül a kütyün, és a szekunderen semmi nincs, akkor rohangál ott áram? De még mennyire! Teljesítmény? Nulla.
Elvi kérdés, hogy akkor milyen értéket akarunk kapni? Nullát, vagy nem nullát. Nem tudom, a lakatfogó ilyen esetben mit mér. Mert ha tisztán ohmikus a terhelés, akkor OK, de ez nem mindig van így. Pl. fúrógép.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Egyáltalán milyen értékek jönnek a szenzorból egy egyszerű szinusz hullám mérésekor, min, max, nullátmenet pillanatában?
Gergosz2
veterán
Na én valami ilyesmivel próbálkoznék. Boarodon nem próbáltam ki, csak gyorsan összedobtam. Amit bekéne állítani az a ADC_GAIN
és ADC_OFFSET
, Utóbbit 512-re tippelem viszont látom, hogy a modulon van valami potméter is így tipper a gain az állítható.
Ez a kód most nullát fog mindenre visszaadni amígy ADC_GAIN
-t nem állítod be.
#include <Arduino.h>
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#define ADC_BUFFER_SIZE 20
#define ADC_PIN A0
#define ADC_OFFSET 512.0f
#define ADC_GAIN 0.0f // be kell állítani
#define RMS_GAIN 0.05f // delta_T/T
volatile uint8_t bufferIterator = 0;
volatile uint16_t ADC_BUFFER[ADC_BUFFER_SIZE];
uint16_t ADC_BUFFER_CALC[ADC_BUFFER_SIZE];
float RMS_Current;
void setup()
{
//Gergosz2 2023
Serial.begin(51200);
setupPWMInterrupt();
bufferIterator = 0;
memset(ADC_BUFFER, (uint16_t)0, ADC_BUFFER_SIZE*sizeof(uint16_t));
}
void loop()
{
if (0u == bufferIterator)
{
memcpy(ADC_BUFFER_CALC, ADC_BUFFER, ADC_BUFFER_SIZE*sizeof(uint16_t));
RMS_Current = 0.0f;
int iterator = 0;
for (iterator = 0; iterator < ADC_BUFFER_SIZE; iterator++)
{
float SI_val = (((float)ADC_BUFFER_CALC[iterator] - ADC_OFFSET)*ADC_GAIN);
RMS_Current = RMS_Current + SI_val*SI_val* RMS_GAIN;
}
RMS_Current = sqrt(RMS_Current);
Serial.println(RMS_Current);
}
}
void setupPWMInterrupt()
{
noInterrupts(); // disable all interrupts
TCCR2A = 0; // set entire TCCR2A register to 0
TCCR2B = 0; // same for TCCR2B
TCNT2 = 0; //initialize counter value to 0
// set compare match register for 1khz increments
OCR2A = 124; // = (16*10^6) / (2*1000*64) - 1 (must be <256)
TCCR2A |= (1 << WGM21); // turn on CTC mode
TCCR2B |= (1 << CS22); // Set CS01 and CS00 bits for 64 prescaler
sbi(TIMSK2, OCIE2A); // enable timer compare interrupt
interrupts(); // enable all interrupts
}
ISR(TIMER2_COMPA_vect)
{
ADC_BUFFER[bufferIterator] = analogRead(ADC_PIN);
bufferIterator ++;
if (bufferIterator > ( ADC_BUFFER_SIZE - 1u) ) bufferIterator = 0u;
}
[ Szerkesztve ]
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
JozsBiker
aktív tag
Szinuszos áram mérésekor a ZMCT103C analóg kimenetén a bemenő jelalaknak megfelelő feszültség mérhető, aminek a nullátmenete kb. a fél tápfeszültségnél azaz 2,5 V -nál van. Az amplitudó arányos a mért áram amplitudójával ill. lehet változtatni a trimmerrel.
Janos250
őstag
Lehet rosszul látom, de az integrálás után nem maradt le az N-el való osztás? Ez így nem másodrendű nyomaték, hanem négyzetösszeg lesz. Bár lehet, rosszul látom.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
JozsBiker
aktív tag
Így egy az egyben futtatva ( ill. csak a soros port sebességét átírva egy emberi értékre ) folyamatosan 0 -t ír ki, áramtól függetlenül. Majd eljátszok a két beállítandó értékkel.
Janos250
őstag
Közben ránéztem még egyszer, rájöttem, ott van.
Egyébként teszik a megoldásod. Bár van, amit én máshogy szoktam.
A memset és memcopy helyett én be szoktam vinni a deklarációt a loopba, kezdőértékkel. Miért? Tudja a fene, így szoktam.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Gergosz2
veterán
Ahogy fentebb is írtam : Ez a kód most nullát fog mindenre visszaadni amígy ADC_GAIN -t nem állítod be.
Szinuszos áram mérésekor a ZMCT103C analóg kimenetén a bemenő jelalaknak megfelelő feszültség mérhető, aminek a nullátmenete kb. a fél tápfeszültségnél azaz 2,5 V -nál van. Az amplitudó arányos a mért áram amplitudójával ill. lehet változtatni a trimmerrel.
Ez tiszta sor, de mennyi az amplitúdó? 5A? Ha annyi akkor a
#define ADC_GAIN 0.0f
sort írd át erre :
#define ADC_GAIN 0.009765625000000f // 5/512
[ Szerkesztve ]
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
JozsBiker
aktív tag
Mármint minek az amplitudója ? A ZMCT elvileg 5 A -es, ami - gondolom - azt jelenti, hogy 5A -es áramnál fog a kimenetén 0 -ig ill. 5 V -ig érni a szinusz hullám.
Átírtam a változót, 0 Ampernél folyamatosan 0,88 -at ír, 2,4 A -es terhelésnél (hajszárító ) felváltva ír 0,6 -t és 1,5 -öt.
Gergosz2
veterán
Átírtam a változót, 0 Ampernél folyamatosan 0,88 -at ír
Akkor az ofset-et kéne állítani, mert 512-n lesz.
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
JozsBiker
aktív tag
Kísérletezgetek, köszi!
Gergosz2
veterán
Ajj, szóval mert nem 512n lesz. Sorry fáradok
[ Szerkesztve ]
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
Akkor lehet meg is van a mérési hiba eredeti oka. Helyes offset-tel talán a "tapasztalati tényezőre" se lesz majd végül szükség.
Wolfram
aktív tag
Olyan megoldást keresek ahol az új kódot nem kell preparálni (belefűzni az OTA kezelést), a micropython-os megoldás ilyen? Egyébként ha minden igaz az ESP32-nek van natív OTA támogatása, de a tényleges megoldások amiket eddig láttam agyon vannak bonyolítva.
ReFleXx
addikt
ha beleirod hogy bootolasnal menjen fel wifi, akkor onnantol siman frissited rajta a kodot remotebol wifin keresztul akar a vilag masik felerol is.
2020-as dakota közmondás: "Intel a csórók AMD-je"
section9
őstag
Itthon lehet valahonnan Teensy 4.1-et szerezni? Nem baj, ha várni kell rá vagy elö kell rendelni, de a legtöbb helyen "majd-egyszer-lesz™" módban vannak.
Wolfram
aktív tag
60-100 euro az ali-n, mire használod?
section9
őstag
Valami megbízhatóbb retailernek jobban örülnék. Mivel világszinten hiánycikk ezért inkább nem kockáztatnék, hogy nem-e klónt sóznak rám.
Teensy Audio Libraryvel kísérleteznék.
Gergosz2
veterán
Megyen?
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
Ez a feladategyüttes vajon megoldható 2db wemossal?
#1: BT kapcsolat wemos#1-en ülő fülessel és telefonnal egyidőben
#2: ha jel jön a speaker jacken, akkor telóról szóló zene lenémít, jacken érkező (rádiós) kommunikáció totális kontrollt kap
#3: telós tartalmat wemos#2 továbbítja a rádió mikrofon jackje felé.
miért nem veszem meg készen? 1: a rádióba dugós darabka nem kompatibilis a rádiómnal (nem fér el és máshogy van bekötve) 2: a kész cucc 90+£...
[ Szerkesztve ]
Mindig meglep milyen sokan hiszik el, hogy van ingyen ebéd.
Wolfram
aktív tag
66db raktáron: [link]
[ Szerkesztve ]
section9
őstag
Nagyon köszi!
tibi-d
tag
Szerintetek egy ESP32 és egy tablet közötti adatcserét melyik verzió támogatja jobban. Ha az ESP32-n létrehozott weblapon állítom be az adatokat, vagy egy android programban állítom be és átküldöm wifi-n. Az ESP-nek is kell küldeni adatot a tablet felé.
Köszi a tanácsokat.
Szerintem az utóbbi, UDP kapcsolattal. A weblap lassú és rugalmatlan.
Janos250
őstag
Az androidos telefon nekem a táskában van kikapcsolva, és csak ha GPS, vagy net kell, akkor veszem elő, ezért arról nem tudok nyilatkozni.
A TCP önmagában elég gyors, de ha minden egyes forgalmazás után megszakítod a kapcsolatot, és mindig újra építed, az lassú. Ezt csinálja a TCP-re épülő http.
Ezért raktak a http fölé még egy réteget, hogy ne szakítsa meg a kapcsolatot, hanem tartsa fenn. Ez a websocket.
UDP gyors, de nincs ellenőrzés, hogy megjött-e az adat, vagy valaki útközben lenyelte.
Ha simán felépíted a WiFi-re épülő kapcsolatot, és nem szakítod meg, hanem fájlként írsz rá, olvasol róla, bármelyik C, C++ file-kezelő utasítással, akkor az - nekem úgy tűnt - elég jó sebességű.
WEB lapra írásnál nyomtatható karakterek kellenek, tehát bináris adat egyszerű átvitelénél WEB lapra, akkor base64 kódolás kell, ami 3 bármilyen byte-ból csinál 4 nyomtathatót. A túloldalon meg vissza.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
tibi-d
tag
Hogy konkrétumokat is írjak. Egy berendezést vezérel az ESP32. A HMI kapcsolatot oldaná meg a tablet. Amíg a berendezés üzemel, addig az ESP és a tablet között a kapcsolatnak folyamatosan meg kéne lennie, hogy a tableten kiadott parancsot a készülék végre tudja hajtani. A berendezésen lévő folyamatról a tableten állapot megjelenítést kellene létrehozni. Az adat cserét legrosszabb esetben is másodpercenként meg kéne valósítani.
[ Szerkesztve ]
Wolfram
aktív tag
websocket, használom már egy ideje ESP8266-on, tökéletesen működik.
Janos250: websocket nincs a http felett, csak azzal indít, utánna egy valódi full duplex TCP kapcsolat lesz belőle.
Janos250
őstag
"a tableten állapot megjelenítést kellene létrehozni."
Ezért lenne előnyös a websocket, mert az közvetlenül a WEB lapra tud írni. Ha másodpercenként kellene újra felépíteni a kapcsolatot, az nem lenne előnyös. Van persze más is, ami nem szakítja meg a kapcsolatot, de ez a legegyszerűbb, vagy legalábbis legelterjedtebb.
Vagy esetleg AJAX, de inkább websocket.
A http fejlécében normál esetben ott van, hogy szakítsa meg a kapcsolatot.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
OK. Én azért tekintettem fölötte lévőnek, mert http nélkül nincs websocket, és én eddig mindig a weblapra írásra használtam, miután itteni kollégák megtanítottak rá, hogy ezt jól lehet használni. :-)
Mivel a WiFi szerverre , és kliensre ül rá, közvetlenül azok is használhatók, de ahhoz nincsenek úgy készen a dolgok, mint a websockethoz.
Mellesleg, ha nem szakítod meg a kapcsolatot, a sima szerver is tud kérés nélkül küldeni. Most hirtelen nem jut eszembe, de valaki leírt egy konkrét esetet, ahol a szerver lesi a klienseket, és ha bármelyik ír, mindenkinek elküldi, hasonlóan az MQTT-hez.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
olli
tag
Sziasztok!
Energia mérőhöz az eredeti programban nyomógombos lcd szerepel, a gombokkal kalibrál. Az lcd az A0 lábon csatlakozik. /* 0.1- Button Function */
int buttonRead;
buttonRead = analogRead (0); // Read analog pin A0. Pin A0 automatically assigned for LCD Display Button function (cannot be changed)
currentButtonMillis = millis();
if(currentButtonMillis - startButtonMillis >= 300)
{
//Right button is pressed
if (buttonRead < 60)
{
myGLCD.clrScr(); // Clear the screen (black)
myGLCD.setFont(BigFont);
myGLCD.setColor(0, 0, 255);
myGLCD.setBackColor(0, 0, 255);
myGLCD.print ("PRESS <SELECT> ",20,20);
myGLCD.print ("TO CALLIBRATE ",20,50);
}
// Up button is pressed
if (buttonRead < 200 && buttonRead > 60) // Press up button to go to upper page
{
page = page - 1 ;
if( page <=0)
{ page = 1;}
startButtonMillis = millis();
}
// Down button is pressed
if (buttonRead < 400 && buttonRead > 200) // Press down button to go to lower page
{
page = page + 1;
if (page >3)
{ page = 3;
}
startButtonMillis = millis();
}
// Left button is pressed
if (buttonRead < 600 && buttonRead >400)
{
myGLCD.clrScr(); // Clear the screen (black)
myGLCD.setFont(BigFont);
myGLCD.setColor(0, 0, 255);
myGLCD.setBackColor(0, 0, 255);
myGLCD.print ("PRESS <SELECT> ",20,20);
myGLCD.print ("TO CALLIBRATE ",20,50);
}
// Select button is pressed
if (buttonRead < 800 && buttonRead > 600)
{
currentOffsetRead = 1; // to activate offset for current
voltageOffsetRead = 1; // to activate offset for voltage
powerOffsetRead = 1; // to activate offset for power // set display words starting at upper left corner
myGLCD.print ("INITIALIZING..... ",20,120); // set display words starting at lower left corner
myGLCD.print ("WAIT 5 SEC ..... ",20,150);
}
}
A nyomógombos lcd hiányában kihagyható: // Offset will automatically callibrate when SELECT Button on the LCD Display Shield is pressed.
// If you do not have LCD Display Shield, look into serial monitor to add or minus the value manually and key in here.
Pontosan hogyan tudom módosítani az értéket?
Érintő képernyő + mega 2560 lesz az alap hardwer, az érintőképernyő
gombjaival ki lehet váltani a fizikai gombokat?
Pl. megoldás egy pwm lábon kiadni a feszültség szinteket az A0 lábra?
By cool !
look into serial monitor to add or minus the value manually and key in here.
Pontosan hogyan tudom módosítani az értéket?
Ezt a megadott kódrészletből nem lehet látni, azt a részt nem másoltad be.
Érintő képernyő + mega 2560 lesz az alap hardwer, az érintőképernyő
gombjaival ki lehet váltani a fizikai gombokat?
Ki lehet, persze, de sokkal egyszerűbb lenne fizikai gombokkal kiváltani az eredeti gombokat. Eredetileg a kód szerint egy analóg lábra vannak kötve a gombok, valószínűleg ellenálláslétra segítségével különbözteti meg, hogy melyik gomb van lenyomva. Ezt 5 egyforma ellenállás segítségével le tudod modellezni, ha szeretnéd, vagy lehet úgy módosítani a kódot, hogy 1db gombot rákötve a select gombot érzékelje.
megoldás egy pwm lábon kiadni a feszültség szinteket az A0 lábra?
Ez több okból sem lenne megoldás.
[ Szerkesztve ]
olli
tag
Ez az eredeti kód, hogyan oldjam meg a kalibrálást az lcd gombok nélkül?
Átraktam a próba topikba.
[ Módosította: Intruder2k5 ]
By cool !
Lyally
Legközelebb légyszi használd a kód beilleszthetése gombot vagy pastebin-t (vagy hasonlót).
A select gomb nyomása ezt csinálja:
currentOffsetRead = 1; // to activate offset for current
voltageOffsetRead = 1; // to activate offset for voltage
powerOffsetRead = 1; // to activate offset for power
LCD.setCursor(0,0); /* set display words starting at upper left corner*/
LCD.print ("INITIALIZING..... ");
LCD.setCursor(0,1); /* set display words starting at lower left corner*/
LCD.print ("WAIT 5 SEC ..... ");
Mi van, ha ezt a pár sort beteszed a setup-ba?
(Most nincs időm alaposabban megfejteni a kódot, hogy mit miért csinál.)
[ Szerkesztve ]
olli
tag
Köszi, működik.
A következő lépés az áram és feszmérő szenzorok csatlakoztatása.
Jelenleg a glcd-re kiírja az adatokat, printeli serialra.
Sd kártyára is megírtam csv-be mentésre, együtt a printseriallal
hibázik.
Csökkenteni kellene a glcd-re kiírás, a serialprint, sd mentés számát, vagy elhagyni valamelyiket?
By cool !
Wolfram
aktív tag
ESP8266/wemos D1 mini-n találtam megint egy hibát:
USB töltőn keresztül adom neki a tápot, és egyszerűen nem indul el? Mi lehet a gond? A kábel hosszát próbáltam rövidíteni, de 50cm-esen sem indul el, csak akkor ha megnyomom rajta a reset gombot.
Kezdetnek a serial sebességét:Serial.begin(9600)
írd át minél gyorsabbra, mert lassítja a futást. 115200 szerintem pont megteszi, persze a serial monitort ne felejtsd átállítani.
Szerintem ezzel nyersz annyi időt, hogy ne hibázzon.
Wolfram
aktív tag
ViZion
félisten
Te minden hibát IS elő tudsz hozni ezeken a kis jószágokon!
Hold on, trying to give a fuck... Nope, not Happening • Powered by Fedora Linux • "Az élet olyan sz@r, szerencsére a felén már túl vagyok" Al Bundy
Wolfram
aktív tag
Veszek egy ilyet: [link] és mindjárt lenyugszom.
ViZion
félisten
NE! Ezt keresed: [link]
Hold on, trying to give a fuck... Nope, not Happening • Powered by Fedora Linux • "Az élet olyan sz@r, szerencsére a felén már túl vagyok" Al Bundy
JozsBiker
aktív tag
Szia Gergosz2 !
Küzdök mint disznó a jégen :-), szeretnék kérdezni a fenti programoddal kapcsolatban.
- Leírnád pár szóban hogy a beállítandó paraméterekkel mit hogyan állítok ? ( ADC_OFFSET, ADC_GAIN, RMS_GAIN )
- Az interrupt kezelő rész fontos bele ? Mit csinál tulajdonképpen ?
- Műszer által 2,33 A -nek írt terhelőáramnál a következőket írja:
2.93
0.30
2.93
0.29
2.93
0.28
2.93
0.31
2.93
0.31
2.92
...
Az utasításokból számomra nem derül ki miért van ez a váltakozás, gondolom a működésből következik, de nem bírok rájönni az okára.
Köszi.
Mai Hardverapró hirdetések
prémium kategóriában
- -62% HP EliteBook 845 G7 (840 G7):Ryzen 5 4650U,16GB,512GB SSD,vilI.MAGYAR bill.,Bang&Ol.,Win11ProHU
- Több db HP Thunderbolt dock 230W G2 230W -os töltővel MONITORCENTER
- Philips Evnia 42M2N8900 Gamer Oled Monitor!42"/4k/138hz/0,1ms/Freesync-Gsync/HDMI 2.1/TypeC/Ambiglow
- -56% HP EliteBook 840 G8:i7 1165G7,16GB RAM,512GB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.
- Monitortató plexi konzol több elérhető készletről MONITORCENTER