- iPhone topik
- iPhone 17 Pro prototípus a vadonban
- Samsung Galaxy Watch7 - kötelező kör
- A HyperOS 3-ra helyezi a fókuszt a Xiaomi
- Mobil flották
- MIUI / HyperOS topik
- Samsung Galaxy S21 FE 5G - utóirat
- Huawei Watch Fit 3 - zöldalma
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
Mobilarena
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.
Új hozzászólás Aktív témák
-
weiss
addikt
Napelemes pár 1,2..10 mA-es csepptöltést nem tudom mennyire bírná. Elvileg NiMH nem bánja.
(#10515) Tankblock: Kínai HUZZAH32 klónt. Direktben 3,3 V-ról táplálva 150 uA-t sikerült mérnem. Gondolkodtam egy külső RTC-n, de ahhoz át kellene kábeleznem a komplett projektet, de lehet ez lesz a vége így is.
-
weiss
addikt
ESP32 mellé milyen 3,3 V-os regulátort ajánlotok, amelyik nem szívja le az akksit? Sajnálattal konstatáltam, hogy ami a lapon van, azzal 27 napot ment a projektem 4 db. 2000 mAh AA-ról, ami kb. 2,5 mA nyugalmi fogyasztás
Nézegettem Mouseren /csak mert jól lehet keresni/, de nem nagyon van semmi regulátor, ami low Iq, de tud 500 mA-t is /és kapható Pesten/. LiFePo4-et nem erőltetném, félek a lítiumtól, ha nem vagyok a közelben.
-
weiss
addikt
#define TIME_COMP_SEC_PER_HOUR 25
void go_to_sleep(const uint32_t sleep_length_in_sec)
{
uint32_t sleep_length_comp_in_sec = (3600 * sleep_length_in_sec) / (3600 - TIME_COMP_SEC_PER_HOUR);
Serial.print("Requested sleep duration: ");
Serial.println(sleep_length_in_sec);
Serial.print("Compensated sleep duration: ");
Serial.println(sleep_length_comp_in_sec);
esp_sleep_enable_timer_wakeup(sleep_length_comp_in_sec * 1000000);
esp_deep_sleep_start();
} -
weiss
addikt
Sikerült monitorozni az adatokat, nem volt egyszerű, viszont értelmezni már nem igazán tudom őket.
CA 3E 55 00 00 6C
CA 14 00 00 10 DB MODE
CA 15 04 00 00 E6 GAIN - IB 16x gain
CA 19 08 00 00 DE WA_CFDIV
CA 3E AA 00 00 1735 05 E4 00 00 16 IA rms
35 07 D5 A3 2E 52 V rms
35 09 F0 FB 02 09 FREQ
35 0A 00 00 00 F5 WATT
35 08 00 00 00 F7 PF
35 0C 00 00 00 F3 WATT_HR35 05 26 02 00 D2
35 07 30 AB 2E EF
35 09 FB FB 02 FE
35 0A 00 00 00 F5
35 08 00 00 00 F7
35 0C 00 00 00 F3Ez a kommunikáció az LCD egység és a mérőchip között a wattméter bekapcsolásakor, utána már csak a 35-tel kezdődő sorok ismétlődnek. Annyit sikerült kihámoznom a datasheetből, hogy a CA az írás, 35 olvasás, ill. minden sor mellé odaírtam, mi tartozik az adott címre. Az adatok jónak tűnnek, mert a checksum stimmel, és a frekvencia is kijön cca. 50 Hz-nek a képlet szerint. Két dolgot nem értek:
- miért mutat nyugalmi állapotban az áram valami értéket, ha a teljesítmény nem
- hogyan kellene értelmezni a feszültséget, egyszerűen sehogy sem tudok a 2E A3 D5-ből cca. 230-at csinálni.Valakinek valami ötlete? Az adatok 35 address data_low data_mid data_high checksum formában vannak.
-
weiss
addikt
válasz
tvamos #10080 üzenetére
USB serial converter kell csak
Na pont azom nincs
Amúgy a doksi végén ott a specifikáció, csak meg kell írni a kódot.
No hablo kínai... Közvetlen lekérdezést nem akarok, mert nem akarom megzavarni a wattméter működését, ezért kellene látnom, hogy mit kérdez le + a választ rá.
-
weiss
addikt
válasz
tvamos #10077 üzenetére
Vettem egy wattmérőt, ebben van egy BL6523GX chip, ami soros porton keresztül kommunikál, és ezt szeretnék elkapni. Az a célja az egésznek, hogy egy ESP8266-segítségével espurna FW-rel, webes felületen is tudjam figyelni az aktuális fogyasztást. Perpill a FW nem támogatja ezt a chipet, és látni akarom, hogy egyáltalán kinyerhető-e valami az adatfolyamból.
-
weiss
addikt
Arduino Uno-t hogy lehet legegyszerűbben bekötni serial port snifferként, van valakinek kipróbált megoldása? Semmi extra nem kell, csak hogy PC-n lássam a hexa streamet.
-
weiss
addikt
Azt úgy biztos nem. Ha már, akkor
(currentpulse >= pulzus) || voros
, de amúgy az összehasonlításnak nagyobb a precedenciája.(#9899) Janos250: Igen, ezt írják is az Arduino oldalán, de mondjuk a fordító igazán számíthatna rá, hogy ha egy ISR-ben módosítasz egy változót, akkor az automatice legyen volatile.
(#9896) Vladi:
az úgy értelmes, hogy:
volatile unsigned longAzzal vigyázz, mert csak 8 bites a proci, és mikor kiolvas egy bájtot a longból, akkor a maradék része változhat. [link]
-
weiss
addikt
válasz
ngabor2 #9870 üzenetére
Arduino: serialról x időközönként beolvasol egy bájtot, ha az egy előre definiált valami küldesz egy OK-t, és várod az időt, ha megjött küldesz egy OK-t.
PC: serialra küldöd megállás nélkül az előre definiált karkatert, ha jött OK, akkor küldöd az aktuális időt megformázva. -
weiss
addikt
Ja, vagy úgy. Ilyenkor sajnos a forráskód a legjobb manual. Úgy tűnik, hogy
WL_CONNECTION_LOST
csak timeoutnál van:} else if(reason == WIFI_REASON_BEACON_TIMEOUT || reason == WIFI_REASON_HANDSHAKE_TIMEOUT) {
WiFiSTAClass::_setStatus(WL_CONNECTION_LOST);Utolsóra van nyitott ticket. Bár ESP8266, de gondolom a wifi része hasonló.
-
weiss
addikt
-
weiss
addikt
válasz
Teasüti #9437 üzenetére
3,3 V-ra van kötve sajnos. A 3,3 V-os pinen tápláltam meg, és deep sleepben is evett 10 mA-t a nyák
Most rendeltem egy Huzzah klónt, remélem abban jobban fog működni.
-
weiss
addikt
Helló, az ESP32-n levő USB csipnek /cp210x/ el kellene menni magától suspendbe, vagy ki lehet lőni valahogy?
-
weiss
addikt
Ha jól értem, a mikrovezérlőről szeretnél meghajtani egy klasszikus relét? Ez nem jó ötlet, mert a lap nem tud annyi áramot adni, hogy meghajtsa a relét. Egy solid state relét lehetne esetleg használni. Tápnak pedig én egy kapacitív előtétet használnék, de azt pontosan kell méretezni.
-
weiss
addikt
válasz
Tankblock #9190 üzenetére
#include "xtensa/core-macros.h"
#include "sound.h"
#define DAC_PIN 25
void setup()
{
Serial.begin(115200);
pinMode(DAC_PIN, OUTPUT);
}
void loop()
{
int start = micros();
play_music();
int stop = micros();
Serial.println(stop - start);
delay(1000);
Serial.println(".");
}
void play_music()
{
uint32_t wait_start = 0;
uint32_t num_tick_to_wait = F_CPU / SAMPLE_RATE;
for(int i = 0; i < NUM_SOUND_SAMPLES; i++)
{
wait_start = xthal_get_ccount();
dacWrite(DAC_PIN, sound_samples[i] + 128);
while((xthal_get_ccount() - wait_start) < (num_tick_to_wait - 86))
{
NOP();
}
}
}A
micros()
helyett próbáltamxthal_get_ccount()
-ot használni, de az sem volt konstans. Próbáltam kikommentelni adacWrite
-ot is, de az sem segített. Már csak arra tudok gondolni, hogy az Arduino fordít valami dinamikus cuccot oda. -
weiss
addikt
Az ESP32-nek nem kellene mindig ugyanannyi idő alatt végrehajtani ugyanazt a kódot, ha nincs megszakítás?
-
weiss
addikt
Találkoztatok olyan ESP32 boarddal, amelyiken van USB /a könnyebb programozhatóság végett/, de le is lehet kapcsolni mindent az SoC-n kívül, ha valami low power cuccok akarok csinálni?
-
weiss
addikt
válasz
vargalex #7403 üzenetére
Ha jól látom az a töltő tud belső ellenállást is mérni, nem emlékszel mennyi volt? Én is ilyen bontott cellákat használok zseblámpákban, de arra gyanakszom, hogy túl nagy. Mármint tudom, hogy nem minden aksi más, csak kíváncsi vagyok, hogy egy nem éppen megkímélt noticella mennyire használódik el.
-
-
weiss
addikt
válasz
BTminishop #6496 üzenetére
Ráállítasz egy megszakítást a pinre, és a megszakító rutinban kapcsolgatsz egy változót. A loopban meg változó függvényében kapcsolgatod a ledet.
-
weiss
addikt
Aki használ BME280-at, az normális, hogy az értékek zajosak? Szobában nyugalomban van a szenzor, és a tizedes érték ugrál. Próbáltam adafruitos és sparkfunos libbel is, oversample/filter a maximumon van, bár mikor ezeket állítgattam, akkor sem láttam érdemi változást.
-
weiss
addikt
Így hirtelen, próba, cseresznye:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 7 // Hőmérő a pin7-en
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int led1 = 6;
int ledState = LOW; // kimeneti pin aktuális állapota
int ledBLINK = 8;
char engedely = HIGH;
unsigned long lastTemp;
float temperature;
int was_low = 1;
int was_high = 1;
void setup()
{
pinMode(led1, OUTPUT);
digitalWrite(led1, ledState);
pinMode(ledBLINK, OUTPUT);
Serial.begin(9600);
sensors.begin();
sensors.setResolution(11);
}
void loop()
{
if (millis() > lastTemp + 1000 ){
sensors.requestTemperatures();
temperature = sensors.getTempCByIndex(0);
Serial.println(temperature);
if (temperature < (24-0.5 )) {
ledState = HIGH;
was_low = 1;
if(was_high){
was_high = 0;
blink5();
}
}
else if (temperature > (24+0.5 )) {
ledState = LOW;
was_high = 1;
if(was_low){
was_low = 0;
blink5();
}
}
lastTemp = millis();
}
digitalWrite(led1, ledState);
}
void blink5(){
for(int i=0;i<5;i++){
digitalWrite(ledBLINK,HIGH);
delay(500);
digitalWrite(ledBLINK,LOW);
delay(500);
}
}
Új hozzászólás Aktív témák
- LÉZEREZÉS! külföldi billentyűzet magyarra kb. 20-30p alatt!
- LG 27GR95UM - 27" MiniLED - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 1000
- LG 27GN800P - 27" IPS - 2560x1440 - 144 hz 1ms - NVIDIA G-Sync - AMD FreeSync - HDR 10
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA ADATA XPG 600W
- Csere-Beszámítás! Asus Rog Strix Thor Platinum II 1200W 80+Platinum Prémium tápegység!