Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   3 / 196
(#) Tomi94 válasza Tomi94 hozzászólására (») Okt 1, 2024
No itt is van a példa, amikor egy trehányul megírt szoftver konkrét pénzügyi kárt képes okozni. Nem véletlen, hogy maradtam a hagyományos kártyás fizetésnél. És akkor van az a kollégám, aki "alig várja", hogy a "nagy és nehéz" mechanikus kulcsokat is végre kiváltsa egy azonosító app, mert az mennyivel egyszerűsíti az életét. Na hát nekem meg ilyenhez hasonló megbízhatósági problémák mellett (de akár csak gondolva arra az esetre, hogy lemerült a telefonom...) - nincs az a pénz, hogy megváljak az évszázadok alatt bizonyított hagyományos záraimtól.
A hozzászólás módosítva: Okt 1, 2024
(#) img hozzászólása Szept 29, 2024
Aliexpress, TOP kategóriás eladó, mindenből 4.8 - 4.9 értékelésű.

Megrendeltem a SOT323 tokozású, 3.3V-os LDO-kból rögtön 20 db-ot mert az volt a legkisebb tétel.

A 400 Ft-os árra 16xx Ft-os szállítást kértem, hogy legyen tracking.

Aztán vártam a szállítást.

Azóta is várom, mert az eladó egyszerűen nem adta fel (gondolom nem érte meg neki).

Így könnyen van kiváló értékelése, mert létrejött üzlet hiányában nem lehet mit lepontozni.

A határidő lejárta után az Ali visszaigazolta, hogy visszatérítik a pénzem, 3-20 napon belül.

22-én visszautalták, viszont a bankom még azóta sem írta jóvá. Gyakorlatilag 1 hónapig kirándult a pénzem a világban, amivel (feltételezem) a bank járt jól mert náluk kamatozik közben.
A hozzászólás módosítva: Szept 29, 2024
(#) Landsmann hozzászólása Szept 28, 2024
Itt ülök a gép előtt, aztán egyszer csak hallom, mintha valamelyik telefon rezgett volna, de hanghatást nem hallottam hozzá. Mondom, ez meg mi? Itt van tőlem balra két telefon, egy meg a kezemben. Ezek biztos nem rezegtek, mert nem onnan jött a hang. Tőlem 1 méterre a dobozába visszatéve a Redmi 6, még nem pakoltam el a szekrény tetejére. Kibontom, láss csodát, koppintásra fel is éledt. 3 napja bekapcsolt, mivel a szerda esti automatikus újraindulást nem kapcsoltam ki. A telefont hiába kapcsoltam ki kedden este, szerdán a beállított 22:00 időpontban ő is életre kelt. Most kivettem az automatikus bekapcsolást, meg feltöltöm teljesen az akkuját és úgy teszem el. 5 évig szolgált hűségesen. De egyre inkább zavart, hogy kattintottam és másodperceket kellett várni mire történt valami. Lehet egy gyári visszaállítással fel lehetett volna gyorsítani, de akkor megint mindent újra rakni semmi kedvem. Akkor inkább már a 2 éve, lassan már 3 éve tartaléknak vett Redmi note 10 5G lett helyette beüzemelve. A most vett Redmi note 13 Pro 5G meg lesz a tartalék, hálózat tesztelő, meg alkalom adtán a fotómasina, mert egyértelműen ez csinálja a legjobb képeket. Kimondottan éjszakai mód is van, ami nagyon szuper. A Redmi 6 nem képvisel olyan értéket, hogy érdemes legyen eladni. Megtartom az elődeivel együtt. Eredeti gyári akkujával a Sony Ericsson T68i ma is hadrafogható. A K700i-ben már többször cseréltem akkut, de az utolsóval még az is életképes, minth ahogy a K850i is. Lehet ezeket egy helyre, egy dobozba kellene tenni hogy együtt legyenek. Mindegyik az eredeti dobozában a töltőikkel együtt töltik a nyugdíjas éveiket. A T68i 22 éves lesz februárban. Ez volt az első valóban színes, grafikus kijelzővel rendelkező telefon. Ez akkor, majd 22 évvel ezelőtt volt kereken 100000 Ft 2 év hűséggel.
(#) Suba53 válasza uniman hozzászólására (») Szept 28, 2024
Valószínűleg a bikázóban, ahogy több más lapos power bankban is, nem ilyen cellák vannak, hanem lapos, fóliába csomagolt darabok. Legalább is amit én szétszedtem, egy rossz 5000mAh power bank, abban így volt.
(#) uniman válasza IvánGábor hozzászólására (») Szept 28, 2024
Az is van...vagyis cella nélküli üres ház! Akár 8 cellával...most beleteszel 2 darabot...később még párat.
DE kérdeztem már a bikázódat, ha rossz, abból ki lehet a cellákat szedni...vagy nem?
(#) Doky586 válasza uniman hozzászólására (») Szept 27, 2024
Így van jól. Tudja a bank hogy ezen helyekről rendszeresen vásárlok így feleslegesen nem vagy csak ritkán ellenőrizget. Logikus.
(#) uniman válasza IvánGábor hozzászólására (») Szept 26, 2024
Úgy tűnik nem értetted meg a lényeget: "18650 akkumulátor 5000mAh" ...nincsen! 2500-2800 mAh-s az valós, kicsit "erősebbek" 3500-3800mAh-sak is még oké lehet. Ennél nagyobb az kamu!
De Kínában bármilyen feliratot rá tudnak nyomtatni a kisebbekre is...
Másrészt összefoglalhatnád egy lapon a kütyüjeid: a meghalt "bikázód" típusa/ mAh-ja? Nem csak egy "power bank" ? A rádiód, erősítős hangszóród "fogyasztása? V/mA ? A bikázó feltöltve mennyi ideig bírta őket megtáplálni? Melyik tápmodul leszz megvéve?
De van akkus hangszóró is...BT és jack bemenettel is...
A bikázódba 4 akku lehet, á 2000-2500 mAh-s ... 10000mAh pótolni egyetlen cellával nem lehet!
De a bikázódból is kinyerheted az akkukat...vagy nem?
A Li-ion akkus fórumokba is olvasgass: Bővebben: Link
A hozzászólás módosítva: Szept 26, 2024
(#) bbb válasza img hozzászólására (») Szept 25, 2024
Én amikor az előző hőkamerámat akartam eladni, akkor (is) futottam bele azonnal pár adathalász robotba. Nem viccelek, öt percen belül jött az üzenet, hogy megvenné, már ki is fizette, csak adjam meg az e-mail címem. S nem egy, hanem rögtön három különböző.
Mi a probléma ezekkel, ami miatt nehéz észrevenni?
1) a valódi emberek is tesznek magasról a helyesírásra, megszólításra, s így egy-egy apró helyesírási hibát simán elengedsz
2) el szeretnéd adni a terméked, ezért örülsz, hogy milyen jól lőtted be az árat, máris akad jelentkező
3) mindig van fent profilkép, ami valósnak tűnik és a felhasználónév se túl szembetűnően idegen
4) a robot sokszor csak annyival kezd, hogy megvan-e még a termék, mert érdekli, majd ha erre válaszolsz, akkor jön az add meg az e-mailcímed szöveggel

A baj, hogy míg én élek a gyanúval, hogy át akarnak verni, ellopni az adataim, pénzem, addig sokaknak ez nem ösztönös. Egyik ismerős három millával lett könnyebb, mert éppen ittas volt, mikor telefonon bepróbálkoztak nála a csalók. Másik meséli, hogy az anyósát (70+) húzták le másféllel úgy, hogy anydesket telepíttettek vele a gépére. Harmadik a pszichológustól jött ki, mikor elérték telefonon és nem is gondolta, hogy vele ez megtörténhet, de ugrott a felújítási keret (ott is milliós tétel). S, ahogy említettem, mivel önmaguktól adták meg az adatokat, a bankok széttárják a kezüket sajnos.
Persze azt is hozzá kell tenni, hogy emellett különböző szervezetek, bankok folyamatosan próbálják az embereket figyelmeztetni ezekre a veszélyekre, de kevesen hallgatják meg, amit mondani akarnak nekik. Például az Erste bank rendszeresen küldözget e-mailt, amiben próbálnak tanítani, de ugyan így kiadott már ilyet a rendőrség és az NKI is. Hogy mennyire komoly a dolog, bizonyítja az Erste oldalán lévő külön kiemelt szöveg is:
Idézet:
„Tájékoztatjuk ügyfeleinket, hogy készpénz-helyettesítő fizetési eszközzel (például bankkártyával, netbankkal, mobilapplikációval) való visszaélés esetén megvizsgáljuk a kárfelelősség kérdését. A kártérítési felelősség intézményünket nem terheli, ha a vizsgálat eredményeképpen az állapítható meg, hogy az ügyfél súlyosan gondatlan magatartásával hozzájárult a kár bekövetkezéséhez. A súlyos gondatlanság fennállásának kérdésében végső döntést a bíróság hozhat.”
(#) bbb válasza diginewl hozzászólására (») Szept 25, 2024
A "vevő" ilyenkor egy adathalász cucc. Készítenek egy olyan lapot, ami megtévesztésig hasonlít a jófogás formájára. Ráadásul a megnyitott oldal már úgy néz ki, mintha már ki is fizette volna neked a vételárat, te csak írd be a banki adataid. Számlaszámot, kártyaszámot, belépős jelszót, neved, címed,... Aki bedől neki (sajnos sokan, az ez irányú oktatás nem elég kiterjedt), az szembesülhet vele, hogy viszik a pénzét, a bank pedig nem téríti meg a kárt, nincs biztosítás, magadra vagy hagyva. A sündőrök próbálkoznak, meg néha el is kapnak embereket, de a pénzed sose látod viszont. Indíthatsz magánvádas pert az elkövető ellen, de győzd idővel, pénzzel, elszántsággal.
(#) nagym6 válasza somitomi hozzászólására (») Szept 24, 2024
Pár ilyen eset után az akkutöltöttség a kb.: nulla és 10% közöttire esik, mivel sosem lesz feltöltve, illetve pótolva az állásban veszett, és indítási energia. Ehhez pedig combos power bank kell, mint írta Atis57 kolléga. Utána le ne álljon a motor pár kilóméterig, mert megint nem indul.
A hozzászólás módosítva: Szept 24, 2024
(#) Atis57 válasza dawe hozzászólására (») Szept 23, 2024
Szia!
Egy ennyire kis power bank nem fog segiteni . De egy nagyobb? Ami 6-10kg meg az ára 70 000Ft .Na az már jó választás lehet.!
A szinten tartás? Mekkora a fogyasztás? Na annak a 1,5...2X már jó lenne .
Ezért árulnak 12V -0,2..0,5A-s töltőket is.

Tehát olcsó, egyszerű, könnyű megoldás ---már 100 éve nincs erre"az egyszerű problémára "!!
(#) nagym6 válasza dawe hozzászólására (») Szept 23, 2024
Nem tudom mennyit ér gyakorlatban a power bank. De lemerült akkus autót másik autó akkujáról bikázva sokszor nem megy mert annyit elszív az üres akku is, hanem pár percig motor járatással kell tölteni a bikázó autóval a lemerültet. Ha egy teljesen feltöltött autó aksi ami 45 vagy több amperórás néha kevés, akkor a töredéke kapacitású power bank tudhat többet?
(#) dawe válasza szs hozzászólására (») Szept 23, 2024
Azt hiszem, hogy nem ment át lényeg. Nem teljesen mindegy, hogy egy 20 kilós, mocskos, nagy méretű akksit kell mozgatnom (amit előtte-utána ugye szerelni kell), vagy egy 20 dekás power bankot. Nyilván nem mérhető össze a teljesítménye egy töltőével, de nem is ez a cél. A power bank kapacitása 74 Wh, az autó akksié 12V*60Ah=720 Wh, tehát kb. a kapacitás tizedét le tudom vinni a zsebemben. Nem nulláról 100%-ra akarom tölteni, hanem szinten tartani.
Valamint ez egy elektronika fórum. Nem az érdekel, hogy megéri-e autót tartanom, hanem az, hogy kinek milyen ötlete van a leírt probléma megoldására.
(#) nagym6 válasza dawe hozzászólására (») Szept 19, 2024
Áramtalanítani, egy utólag beépített kapcsolóval. Vannak ilyen célra nagy áramú kapcsolók. Nem fogyasztja semmi, önkisülés több hónap lenne. Kivéve, ha olyan elektronikájú kocsi, amelyik áramtalanítás után bonyolultan kapcsolható vissza.
A power bank -al szinten tartás kb. ugyanaz, mintha nagyobb kapacitású akku lenne benne power bank nélkül.
(#) dawe hozzászólása Szept 19, 2024
Sziasztok!

Ritkán használom a kocsimat, és akkor is leginkább 5-10 km-es városi utakra, ezért az önkisülés és a benne lévő fogyasztók (pl. központi zár) miatt az akksi feszültsége gyakran alacsony (pl. 11,5 V) az indítás előtt.
Nem szeretném hagyni, hogy lemerüljön az akksi, jó lenne időnként rátölteni. Viszont az autó társasház előtt áll, ahol nincs elérhető 230V, és nem is nagyon szeretném havonta kiszerelni és felcipelni az ólom akksit a 7. emeletre hogy feltöltsem.

Van esetleg valakinek ötlete arra, hogy milyen más módszerrel lehetne időnként töltögetni az akksit? Azt ne írjátok, hogy menjek vele gyakrabban, mert ezt magamtól is kitalálom

Nekem olyasmi jutott eszembe, hogy leviszek valamilyen feltöltött akksit, csinálok mondjuk 18V-ot DC-DC konverterrel, és arra építek egyszerű áram- és feszültségkorlátos töltő áramkört. Akár egy 20.000 mAh-ás USB power bank (van itthon) is jó lehet, mert ezt átszámolva 12V-ra is egész jó a kapacitása arra, hogy szinten tartsam vele a nagy akku feszültségét.
Csinált már valaki ilyesmit?
(#) img válasza Gombszem hozzászólására (») Szept 19, 2024
(#) vrbr válasza Suba53 hozzászólására (») Szept 18, 2024
(#) sszasza válasza asch hozzászólására (») Szept 15, 2024
Még ha fix cimre rakom is, az 5-ös sorra "initializer element is not a compile-time constant" a forditó reakciója.
(#) kameleon2 válasza pipi hozzászólására (») Szept 5, 2024
Szia!
Amit találtam az a szoftverben is benne van:
  1. initialise();
  2. output(0x0f, 0x02);  //display test register - test mode off (0) (2 best)
  3. output(0x0c, 0x01); //shutdown register - normal operation (1)
  4. output(0x0b, 0x07); //scan limit register - display digits 0 thru 7
  5. output(0x0a, 0x00);  //intensity register - max brightness (F)
  6. output(0x09, 0xff);   //decode mode register - CodeB decode all digits

Eszerint a display test register off lenne a 0, de a valóságban kevesebb a "szemét" ha 2-re állítottam.
A teljes kód jelenleg:
  1. //MAX 7219 SPI PINS
  2. #define MAX7219_DIN 2
  3. #define MAX7219_CS  4
  4. #define MAX7219_CLK 3
  5.  
  6. void initialise() {
  7. pinMode(MAX7219_DIN, OUTPUT);
  8. pinMode(MAX7219_CS, OUTPUT);
  9. pinMode(MAX7219_CLK, OUTPUT);
  10. // digitalWrite(MAX7219_CS, HIGH);
  11. // delay(1);
  12.  
  13. }
  14.  
  15. void output(byte address, byte data) {
  16.  
  17. digitalWrite(MAX7219_CS, LOW);
  18. delay(1);
  19. shiftOut(MAX7219_DIN, MAX7219_CLK, MSBFIRST, address);
  20. shiftOut(MAX7219_DIN, MAX7219_CLK, MSBFIRST, data);
  21. digitalWrite(MAX7219_CS, HIGH);
  22. delay(1);
  23.  
  24. }
  25.  
  26. void setup() {               // put your setup code here, to run once:
  27.  
  28. initialise();
  29. output(0x0f, 0x02);  //display test register - test mode off (0) (2 best)
  30. output(0x0c, 0x01); //shutdown register - normal operation (1)
  31. output(0x0b, 0x07); //scan limit register - display digits 0 thru 7
  32. output(0x0a, 0x00);  //intensity register - max brightness (F)
  33. output(0x09, 0xff);   //decode mode register - CodeB decode all digits
  34.  
  35. /*
  36.  * 0x00-Zero  | 0x01-1    | 0x02-2    | 0x03-3    | 0x04-4    | 0x05-5      | 0x06-6    | 0x07-7    | 0x08-8    | 0x09-9    |
  37.  * 0x0A-(-)   | 0x0B-E    | 0x0C-H    | 0x0D-L    | 0x0E-P    | 0x0F- URES  |    
  38.  * 0xA0-(0.)  | 0xA1-(1.) | 0xA2-(2.) | 0xA3-(3.) | 0xA4-(4.)   | 0xA5-(5.) | 0xA6-(6.) | 0xA7-(7.) | 0xA8-(8.) | 0xA9-(9.)  |
  39.  * 0xAA-(-.)  |
  40.  */
  41. output(0x08, 0x02); //digit 7 (leftmost digit) data (H?-0x0c)
  42. output(0x07, 0x00); //                              (E?-0x0b)
  43. output(0x06, 0x0D); //                              (L?-0x0d)
  44. output(0x05, 0xA1); //                              (P?-0x0e)
  45. output(0x04, 0x01); //                              (8? -0x08)
  46. output(0x03, 0x09); //                              (7? -0x07)
  47. output(0x02, 0x07); //                              (6? -0x06)
  48. output(0x01, 0x00); //digit 0 (rightmost digit) data (5?)
  49.  
  50. }
  51.  
  52. void loop() {
  53.  
  54. // put your main code here, to run repeatedly:
  55.  
  56. }

Az eredeti projekt kód, amiből kiindultam. Megvallom nem igazán kedvelem ezeket a buszos meghajtásokat, de most a kevés láb és a sok szegmens miatt rá vagyok kényszerítve. Időből viszont csehül állok, hogy eredményt is tudjak elérni.
(#) Tambi válasza dc001 hozzászólására (») Szept 2, 2024
Köszönöm kedves Dc001!
Az alapfrekvenciát megváltoztattam 182 Hz-re, az f++ -t f=f+10-re, a serial.print(f) gyönyörűen jelzi a 10-es lépésenkénti változást, de a kimenet marad a stabil 182 Hz, nem változik f-el együtt.

A ledcAttach(PIN, f, D); áthelyezhető a setup-ból a loop-ba?

Hogyan kell a ledcAttach()-t kiíratni? A
Serial.print(" ledcAttach: ");
Serial.println(ledcAttach); -ra nagyon hosszú hibalistát küldött:

C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino: In function 'void loop()':
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:15: error: no matching function for call to 'println(bool (&)(uint8_t, uint32_t, uint8_t))'
33 | Serial.println(ledcAttach);
In file included from C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Stream.h:26,
from C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Arduino.h:193,
from C:\Users\APA\AppData\Local\Temp\arduino\sketches\0EBA565169E8B35385C1FC4A6CDA5573\sketch\GENERATOR_LEDC_ENC_min.ino.cpp:1:
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:102:10: note: candidate: 'size_t Print::println(char)' (near match)
102 | size_t println(char);
| ^~~~~~~
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:102:10: note: conversion of argument 1 would be ill-formed:
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:16: error: invalid conversion from 'bool (*)(uint8_t, uint32_t, uint8_t)' {aka 'bool (*)(unsigned char, long unsigned int, unsigned char)'} to 'char' [-fpermissive]
33 | Serial.println(ledcAttach);
| ^~~~~~~~~~
| |
| bool (*)(uint8_t, uint32_t, uint8_t) {aka bool (*)(unsigned char, long unsigned int, unsigned char)}
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:103:10: note: candidate: 'size_t Print::println(unsigned char, int)' (near match)
103 | size_t println(unsigned char, int = DEC);
| ^~~~~~~
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:103:10: note: conversion of argument 1 would be ill-formed:
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:16: error: invalid conversion from 'bool (*)(uint8_t, uint32_t, uint8_t)' {aka 'bool (*)(unsigned char, long unsigned int, unsigned char)'} to 'unsigned char' [-fpermissive]
33 | Serial.println(ledcAttach);
| ^~~~~~~~~~
| |
| bool (*)(uint8_t, uint32_t, uint8_t) {aka bool (*)(unsigned char, long unsigned int, unsigned char)}
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:104:10: note: candidate: 'size_t Print::println(int, int)' (near match)
104 | size_t println(int, int = DEC);
| ^~~~~~~
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:104:10: note: conversion of argument 1 would be ill-formed:
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:16: error: invalid conversion from 'bool (*)(uint8_t, uint32_t, uint8_t)' {aka 'bool (*)(unsigned char, long unsigned int, unsigned char)'} to 'int' [-fpermissive]
33 | Serial.println(ledcAttach);
| ^~~~~~~~~~
| |
| bool (*)(uint8_t, uint32_t, uint8_t) {aka bool (*)(unsigned char, long unsigned int, unsigned char)}
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:105:10: note: candidate: 'size_t Print::println(unsigned int, int)' (near match)
105 | size_t println(unsigned int, int = DEC);
| ^~~~~~~
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:105:10: note: conversion of argument 1 would be ill-formed:
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:16: error: invalid conversion from 'bool (*)(uint8_t, uint32_t, uint8_t)' {aka 'bool (*)(unsigned char, long unsigned int, unsigned char)'} to 'unsigned int' [-fpermissive]
33 | Serial.println(ledcAttach);
| ^~~~~~~~~~
| |
| bool (*)(uint8_t, uint32_t, uint8_t) {aka bool (*)(unsigned char, long unsigned int, unsigned char)}
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:106:10: note: candidate: 'size_t Print::println(long int, int)' (near match)
106 | size_t println(long, int = DEC);
| ^~~~~~~
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:106:10: note: conversion of argument 1 would be ill-formed:
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:16: error: invalid conversion from 'bool (*)(uint8_t, uint32_t, uint8_t)' {aka 'bool (*)(unsigned char, long unsigned int, unsigned char)'} to 'long int' [-fpermissive]
33 | Serial.println(ledcAttach);
| ^~~~~~~~~~
| |
| bool (*)(uint8_t, uint32_t, uint8_t) {aka bool (*)(unsigned char, long unsigned int, unsigned char)}
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:107:10: note: candidate: 'size_t Print::println(long unsigned int, int)' (near match)
107 | size_t println(unsigned long, int = DEC);
| ^~~~~~~
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:107:10: note: conversion of argument 1 would be ill-formed:
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:16: error: invalid conversion from 'bool (*)(uint8_t, uint32_t, uint8_t)' {aka 'bool (*)(unsigned char, long unsigned int, unsigned char)'} to 'long unsigned int' [-fpermissive]
33 | Serial.println(ledcAttach);
| ^~~~~~~~~~
| |
| bool (*)(uint8_t, uint32_t, uint8_t) {aka bool (*)(unsigned char, long unsigned int, unsigned char)}
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:108:10: note: candidate: 'size_t Print::println(long long int, int)' (near match)
108 | size_t println(long long, int = DEC);
| ^~~~~~~
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:108:10: note: conversion of argument 1 would be ill-formed:
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:16: error: invalid conversion from 'bool (*)(uint8_t, uint32_t, uint8_t)' {aka 'bool (*)(unsigned char, long unsigned int, unsigned char)'} to 'long long int' [-fpermissive]
33 | Serial.println(ledcAttach);
| ^~~~~~~~~~
| |
| bool (*)(uint8_t, uint32_t, uint8_t) {aka bool (*)(unsigned char, long unsigned int, unsigned char)}
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:109:10: note: candidate: 'size_t Print::println(long long unsigned int, int)' (near match)
109 | size_t println(unsigned long long, int = DEC);
| ^~~~~~~
C:\Users\APA\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.3\cores\esp32/Print.h:109:10: note: conversion of argument 1 would be ill-formed:
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\_____ESP32\GENERATOR_LEDC_ENC_min\GENERATOR_LEDC_ENC_min.ino:33:16: error: invalid conversion from 'bool (*)(uint8_t, uint32_t, uint8_t)' {aka 'bool (*)(unsigned char, long unsigned int, unsigned char)'} to 'long long unsigned int' [-fpermissive]
33 | Serial.println(ledcAttach);
| ^~~~~~~~~~
| |
| bool (*)(uint8_t, uint32_t, uint8_t) {aka bool (*)(unsigned char, long unsigned int, unsigned char)}

exit status 1

Compilation error: no matching function for call to 'println(bool (&)(uint8_t, uint32_t, uint8_t))'

Mindig olyasmibe fogok, ami meghaladja....

Köszönettel; Tambi
(#) Massawa hozzászólása Aug 30, 2024
Olvasgatok egy cikket a szélenergia jelenlegi helyzetéröl. Érdekes modon a problémák ugyanazok maradtak mint 20 éve, amikor sok nagy bank meg befektetö kilépett a boltbol.

1. A szélerömüvek az általuk termelt energia árának több mint 20%-t elnyeli a karbantartás. Érdekes modon a mai napig nem tudják miért mennek a turbinák mechanikus részei (csapágyai, a
áttételei) ilyen gyorsan tönkre. A ventillátorok amik max 70 rpm-l forognak belül egy 4 fokozatu áttételen át hajtják az alternátort aminek a fordulatszáma 1800 ( 60Hz-re) vagy 1500 az 50Hz hálozatban.

2. Amint a szélkerekeket a közhálozatba akarják kötni elöjön a szinkronizálás kérdése. Ezt persze a szélkerék fordulatszámával kellene kezelni, sajnos a lapátok hatalmas tehetetlensége kizárja az aktiv szinkronizálást. Igy maximum a lapátok forgatásával megközelitö sebességre tudják állitani a turbinát, de ez még nem szinkron.

3. Kisebb telepeken megprobálják egy AC-DC-AC váltoval kezelni a kérdést, ez addig megy amig van energia, azaz ha lassul a szél a konverter is leáll. Márpedig a közhálozatba csak olyan energiát lehet betáplálni 24/7 rendszerben, ami tudja garantálni a frekvenciát is. A 20 éves ötlet sem nagyon müködik, hogy majd a foszilis, viz meg az atomerömüvek besegitenek, mert az ottani gépek tehetetlensége sem képes azonnal reagálni a freki lassulásra.
Az uj lassabban forgo alternátorok 28 polusuak (4 helyett) , de igen nagyok és a felhasznált mágnesek 95%-t Kina szállitja, azaz ez sem igen járhato ut. Ráadásul a mertek akkorák, hogy szinte lenetetlen megoldani a szállitásukat. És még kevésbé tud reagálni a frekvencia esésre és nem igen tudják még milyen karbantartási igények lépnek fel, annak ellenére, hogy a mechanizmus kb 7x lassabban forog.

4. Az USAban ezért nincs egy összefüggö elektromos hálozat, mert az egyes hálozatok nem tudják a federális szabályokat garantálni. Mintegy 15 éve épitettek egy hatalmas kisérleti telepet, ha jol emlékszem vagy 1000 lendkerékkel, amiket a hálozat tart állandoan forgásban, és ha kell azonnal tudnak energiát termelni és támogatni a hálozat frekvencia igényét. Az irek is valami hasonlot adtak át nemrégen, ahol egy több mint 100 tonnás lendkerék vákuumkamarában forog. Igy már az ir hálozat teljesiti a kontinens energia szabványait és megépithetik a 700 MW-s kábelt Franciaországba ahonnan ha kell atomenergiát vehetnek vagy a szélerömüveik energiáját tölthetik a kontinens hálozatába. A lendkerék kb 20 perc alatt éri el a névleges fordulatszámot.
A hozzászólás módosítva: Aug 30, 2024
(#) reloop válasza SzervízMacska hozzászólására (») Aug 21, 2024
Köszönöm! Kipróbálom, bár teljesen átlagos Redmi note 7-et használok.
(#) tunerman válasza tunerman hozzászólására (») Aug 19, 2024
Münchhausen drive V-FET SE alkatrészlista (parts list):

- doboz: Takachi SRDSL-20HS x1
- alu hűtőborda: 300x200x40mm x1
- alu hangerőgomb: Sato K-59-L AG 6mm/50mm x1
- aljzat: EMI filter/fuse/switch Power Conversion x1
- RCA bemenet: WBT 0274 pár
- SPK kimenet: WBT 0700 x2 pár
- attenuator: TKD 2P65CS x1
- hálózati transzformátor: Marantz 2245 x1
- kimenő transzformátor: Hirata Tango FG50S x2
- fojtó: Hirata Tango 0,1H/1200mA x2
- dióda: CGG JAN 1N3913 gold x4
- kék LED: SMD 5050 x2
- Sony V-FET: 2SK79 x2
- Hitachi V-MOS: 2SJ119 x2
- kondenzátor: Black Gate FK 10000µF/80v x4
- kondenzátor: Black Gate FK 100µF/100v x2
- kondenzátor: kerámia 100nF x2
- jelvezetékek:
- Audio note Kondo KSL SPz
- Audio note UK 850 SPe
- tápvezetékek: sodrott ezüstözött réz, teflon bevonattal, 1,5mm²
Ellenállások:
- termisztor: 10k NTC x2
- 1k thick film x2
- 2k2/2W tantalum x2
- 20k/2W tantalum x2
- 56k/0,5W tantalum x2
- 1M5 thick film x2
- forrasztó ón: Siltec
TJ.
(#) Tambi hozzászólása Aug 19, 2024
Kedves Fórumtársak!

Magasabb szintre léptem (pedig az alacsonyabbat sem tudom); ESP32-vel kísérletezgetek. Minden olyan timer-t tartalmazó kód, ami 1-2 éve már működött, most nem.
Pl.:
  1. #define LED 2                                    //LED legyen a D2 lábon
  2. hw_timer_t * My_timer = NULL;                     //My_timer-nek elnevezzük a hw_timer_t NULL (0) időzítőt
  3.  
  4. void IRAM_ATTR onTimer(){                        //ezt a megszakítást az onTimer generálja, de előbbre kell írni...
  5. digitalWrite(LED, !digitalRead(LED));            //ez pedig a végrehajtás (toggle LED)
  6. }
  7. void setup() {
  8. pinMode(LED, OUTPUT);                            //LED (D2) kimenet
  9. My_timer = timerBegin(0, 8, true);               //TIMER"0" kiválasztva, f= 80MHz / 2 Előosztó = 40MHz, true: felfelé számol
  10. timerAttachInterrupt(My_timer, &onTimer, true);  //a My_timer az onTimer megszakítást váltja ki
  11. timerAlarmWrite(My_timer, 1000000, true);        // 2.000.000 impulzusig számol: f LED = 40MHz/(2ÉL * 2.000.000) = 10Hz-el
  12. timerAlarmEnable(My_timer);                     //engedélyezzük a My_timer megszakítást
  13. }
  14.  
  15. void loop() {}




A HIBAÜZENET HOSSZABB, MINT A KÓD:



C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\ESP32\TIMER_LED_ESP32\TIMER_LED_ESP32.ino: In function 'void setup()':
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\ESP32\TIMER_LED_ESP32\TIMER_LED_ESP32.ino:9:22: error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
9 | My_timer = timerBegin(0, 8, true); //TIMER"0" kiválasztva, f= 80MHz / 2 Előosztó = 40MHz, true: felfelé számol
| ~~~~~~~~~~^~~~~~~~~~~~
In file included from C:\Users\APA-PC-Otthon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\cores\esp32/esp32-hal.h:84,
from C:\Users\APA-PC-Otthon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\cores\esp32/Arduino.h:36,
from C:\Users\APA-PC-Otthon\AppData\Local\Temp\arduino\sketches\C81FFCFE91EB0C7DFDC9DB9E295B2C40\sketch\TIMER_LED_ESP32.ino.cpp:1:
C:\Users\APA-PC-Otthon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\cores\esp32/esp32-hal-timer.h:35:13: note: declared here
35 | hw_timer_t *timerBegin(uint32_t frequency);
| ^~~~~~~~~~
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\ESP32\TIMER_LED_ESP32\TIMER_LED_ESP32.ino:10:21: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)())'
10 | timerAttachInterrupt(My_timer, &onTimer, true); //a My_timer az onTimer megszakítást váltja ki
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\APA-PC-Otthon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\cores\esp32/esp32-hal-timer.h:50:6: note: declared here
50 | void timerAttachInterrupt(hw_timer_t *timer, void (*userFunc)(void));
| ^~~~~~~~~~~~~~~~~~~~
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\ESP32\TIMER_LED_ESP32\TIMER_LED_ESP32.ino:11:1: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
11 | timerAlarmWrite(My_timer, 1000000, true); // 2.000.000 impulzusig számol: f LED = 40MHz/(2ÉL * 2.000.000) = 10Hz-el
| ^~~~~~~~~~~~~~~
| timerWrite
C:\OneDrive\OneDrive - Csarnok.hu Kft\EN\AVR_2024\ESP32\TIMER_LED_ESP32\TIMER_LED_ESP32.ino:12:1: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
12 | timerAlarmEnable(My_timer); //engedélyezzük a My_timer megszakítást
| ^~~~~~~~~~~~~~~~
| timerAlarm

exit status 1

Compilation error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'


Mi lehet a baja?

Köszönettel; Tambi.
(#) tunerman válasza tunerman hozzászólására (») Aug 18, 2024
Betenném bemutatás céljából az első vázlatos leírásomat, ami természetesen majd a végleges formájában jelenik meg a HiFi Shown.

Semmi sem új a nap alatt?
(A Münchhausen drive V-FET single ended erősítő bemutató szórólap tervezete)

Prédikátor könyve 1:9
" 9Ami volt, az lesz újra, és ami történt, az történik megint: semmi sem új a nap alatt. "

El kell ismerjem a prédikáció mélyebben rejlő igazságtartalmát, ami ezen a területen azt jelentheti, hogy mindennek van előzménye, minden ráépül az erősítéstechnika eddigi múltjára.

A Münchhausen drive V-FET Single Ended erősítő alapgondolata, elvi működése - habár félvezetőket használ - ugyan úgy az elektroncsöves SE erősítők elmúlt 100 évében történt elképzeléseket és megvalósításokat próbálja meg valamiképpen továbbvinni. A kimeneten használt egységcsatolt (Unity Coupled) SE transzformátoros megoldás elődje a szabadalommal védett McIntosh csöves PP erősítőiben található meg. Persze ez után véget is ér a hasonlóság, mert nálam nincs elektroncső, és nem push-pull, hanem egyszerű SE az erősítő működési elve. Viszont a hagyományos SE erősítőkhöz képest ez az új fejlesztésű egységcsatolt kimenet nagymértékű javulást hoz, mind a technikai paraméterekben, mind a hangzás szinvonalában.

A másik - réges régi - elnevezés már távolabbi kapcsolatra utal, és ez egy valóban egészen vidám történet. Münchhausen báró az 1700-as években élő híresen nagyotmondó, hihetetlen eseményeket mesélő személy volt. Egyik jól ismert története szerint a mocsárba merült a lovával, de Ő a saját hajánál fogva kihúzta magát a lovával együtt szorult helyzetéből.
Az erősítőm Münchhausen drive elnevezésű bemeneti fokozatának a működése ezt az eseményt idézi fel a régmúltból. A Sony 2SK79 V-FET-el kivitelezett driver a működése közben keletkezett nem kivánatos jeleket saját maga törli ki, és így távoli hasonlóságot mutat a nagyhangú előd ismert történetével

Áttérve a gyakorlati megvalósításra, a minimál koncepció követése tűnt a legszimpatikusabbnak, főleg azért, mert ebben Jean Hiraga Nemesis projektje egy korábbi példát már szolgáltatott. A nagynevű elődöt a magasabb hangzási igényeket teljesítő V-FET-ek segítségével, az SE egységcsatolt kimenettel, és a no global NFB szigorú betartásával együtt megpróbálhatom utolérni...
Az alkatrészek kevés száma adta magát ahhoz, hogy az elérhető legjobb minőségűeket építsem be (2SK79, TKD 2P65CS, Tango FG50S, Black Gate FK), a jelvezetékezés Audio note silver litze kivitelezésű.
A technológia újításokra is szükség volt, valamiképpen feljebb kellett kerülni szinvonalban az eddigi megszokott kivitelezésekhez képest. Ezt a bemeneti attenuatorra ráépített komplett driver fokozattal sikerült elérni, a "sajátlábas" technika egy teljesen egyedi megoldása lett belőle.
A prototipus műszaki adatai, bemérése visszaigazolta az előzetes elvárásokat, a hagyományos kivitelezésű SE erősítőkhőz képest remélhetőleg előrelépést sikerült elérni.

Audio Hobby
TJ.
(#) tunerman válasza tunerman hozzászólására (») Aug 6, 2024
Két napi tervezgetés után - hogy milyen hosszú kábeldarabokat vágjak le az 1,6m-es Audio note 850 SPe kábelből - belefogtam a vagdosásba
Úgy számoltam ki a darabolást, hogy a V-MOSFET és a Tango kimenő között pontos méret legyen, és a maradékból lesznek a hangszóró kimenetek felé menő szakaszok. Talán 1-2 cm-rel hosszabbak is lehetnek, mert nagyon nem szeretnék a végén látni majd egy nyúlfarknyi maradékot ebből drága csodából
TJ.
(#) MATA hozzászólása Aug 4, 2024
Üdv mesterek!
Van itt ez a kód ez egy akku kapacitásnérő arduino kódja.
A 39-40 sort hibáztatja:
Button BT1(2);
Button BT2(4);
A fordításnál a következő hibaüzenetet írja:
Compilation error: no matching function for call to 'Button::Button(int)'
Mi lehet itt a baj?
Kösszönöm!
  1. /*================================
  2. micro:                  Arduino Nano with bootloader Uno    (Arduino Uno)
  3. Display:                TFT ST7789 240x240
  4. Sensor:                 INA219
  5. Power:                 
  6. Data:                   23/01/2023
  7.  
  8. File programma: H:\arduino-1.8.13\portable\sketchbook\Battery_Test_Aldo-v3\Battery_Test_Aldo-v3.ino
  9. Annotazioni:   
  10.  ST7789 240x240 IPS (without CS pin) connections (only 6 wires required):
  11.  #01 GND -> GND
  12.  #02 VCC -> VCC (3.3V only!)
  13.  #03 SCL -> D13                         52 Mega
  14.  #04 SDA -> D11                         51 Mega
  15.  #05 RES -> D9
  16.  #06 DC  -> D8
  17.  #07 BLK -> NC
  18.  
  19.  * Adafruit INA219 Breakout board
  20.  * I2C connections:
  21.  *    SCL pin goes to Nano A5
  22.  *    SDA pin goes to Nano A4
  23.  * VCC to +5V
  24.  * GND to GND
  25.  * Vin- and Vin+ are not used
  26. ===================================*/
  27. #include <Button.h>
  28. #include <Wire.h>
  29. #include <Adafruit_INA219.h>
  30. #include <EEPROM.h>
  31. #include <SPI.h>
  32. //#include <Adafruit_GFX.h>
  33. #include <Arduino_ST7789_Fast.h>
  34.  
  35. // pin I/O Arduino
  36. #define end_sounder  A2 //buzzer
  37. #define potPin  A0                //potenziometro
  38.  
  39. Button BT1(2);
  40. Button BT2(4);
  41.  
  42. // pin display ST7789
  43. #define TFT_DC    8
  44. #define TFT_RST   7
  45. // dimensione schermo display
  46. #define SCR_WD 240
  47. #define SCR_HT 240
  48. // define what kind of fonts should be used
  49. #define USE_RRE_FONTS 1
  50.  
  51. Arduino_ST7789 lcd = Arduino_ST7789(TFT_DC, TFT_RST);
  52.  
  53. #include "RREFont.h"
  54. #include "rre_term_10x16.h"
  55. #include "rre_bold13x20.h"
  56. #include "rre_bold13x20v.h"
  57. #include "rre_bold13x20no.h"
  58.  
  59. RREFont font;
  60. // needed for RREFont library initialization, define your fillRect
  61. void customRect(int x, int y, int w, int h, int c) { return lcd.fillRect(x, y, w, h, c); }  
  62.  
  63. //-----------------------------------------------------------------------------
  64.  
  65. unsigned long ms = 0;
  66. int stato = 10;
  67. boolean FIRST = true;
  68. boolean ONCE = true;
  69.  
  70. int target_mA;                      //= 100;
  71. float cutoff_voltage;           //= 3.2;
  72. float kP;                               //= 50;
  73. float v1,v2,v3;
  74. int a1, a2, a3;
  75. float b1, b2, b3;
  76. byte cifra[4];
  77. char str_h[3];                          //stringa per ore
  78. char str_m[3];                          //stringa per minuti
  79. char str_s[3];                          //stringa per secondi
  80.  
  81.  
  82. //================== variabili per  RUN  ==================
  83. int time_limit = 360;       // 6 hours. Test relies on the..    
  84. float offset = 0.0;
  85. int tolerance = 1;
  86.  
  87. //int pwm = 0;
  88. float error;
  89. boolean manual = false;
  90.  
  91. String SW_VERSION = "3.04";
  92.  
  93. // Current shunt and voltage measurements
  94. Adafruit_INA219 ina219;
  95.  
  96. float shuntvoltage = 0;
  97. float busvoltage = 0;
  98. double current_mA = 0;
  99. float loadvoltage = 0;
  100. float power_mW = 0;
  101. /*
  102.   * La seguente variabile visualizza la tensione della cella.
  103.   * C'è una costante R che può essere impostata nella routine read_INA che può
  104.   * essere utilizzato per tenere conto delle perdite di cablaggio o traccia PCB nel loop di corrente.
  105.   * Se puoi misurarlo.
  106.   * Puoi anche utilizzare un DVM molto accurato per confrontare la tensione della cella
  107.   * con ciò che misuri e modifica questa variabile in modo che corrisponda a quanto visualizzato
  108.   * tensione di cella. Se ci tieni a questa precisione...e cell voltage
  109.  */
  110. float vR;
  111.  
  112. // lapse timer for test duration and mAh calculation
  113. unsigned long  startMillisec;           // Variables for discharge timer.
  114. unsigned long  sampleTime = 10000;      // Default samples to PC time (ms)
  115. unsigned long millis_PC_wait;           // Timer for samples to PC
  116. unsigned long millisCalc_mAh;           // Timer for mAh calc. and LCD write.
  117. float last_hours = 0.0;                 // Working variables for time and mAh
  118. float mAh_soFar = 0.0;
  119.  
  120. int days, hours;
  121. int mins, secs;
  122. int tMins;
  123.  
  124. // Beeper
  125. boolean sounded = false;  // flag to limit beeping
  126. int beep = 1;             // value coming from PC, no longer used
  127.  
  128. // Variables and flags to terminate test
  129. int cancel = 0;
  130. boolean timed_out = false;
  131. boolean high_current = false;
  132. boolean cutoff_voltage_reached = false;
  133. String error_code = "";
  134. boolean end_of_test = false;
  135.  
  136. //------------------------------------------------------------
  137. /* a hack to create up to 16-bit PWM signals:
  138.  * The above one is WRONG! Below is the correct one.
  139.  *
  140.  * I use the 13-bit version because the resolution of the 10-bit counter is too
  141.  * course to drive the error variations.
  142.  */
  143. void setupFastPWM() {
  144.   /* Changing ICR1 will effect the resolution and the frequency.
  145.   ICR1 = 0xffff; (65535) 16-bit resolution  244 Hz
  146.   ICR1 = 0x7fff; (32767) 15-bit resolution  488 Hz
  147.   ICR1 = 0x3fff; (16383) 14-bit resolution  977 Hz
  148.   ICR1 = 0x1fff;  (8192) 13-bit resolution 1953 Hz
  149.   ICR1 = 0x0fff;  (4096) 12-bit resolution 3908 Hz
  150.   */
  151.   DDRB |= (1 << DDB1) | (1 << DDB2);
  152.   TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << WGM11);
  153.   TCCR1B = (1 << WGM12) | (1 << WGM13) | (1 << CS10);
  154.   OCR1A = 0;
  155.   ICR1 = 0x1fff; /* TOP counter value (freeing OCR1A)*/
  156. }
  157. //----------------------------------------------------------
  158.  
  159. /* xx-bit version of analogWrite(). Works only on pins 9 and 10. */
  160. void analogWriteFast(uint8_t pin, uint16_t val)
  161. {
  162.   switch (pin) {
  163.     case  9: OCR1A = val; break;
  164.     case 10: OCR1B = val; break;
  165.   }
  166. }
  167. //--------------------------------------------------------------------
  168.  
  169. // PWM setup
  170. const byte pwm_pin = 9;   // PWM DAC, only pins 9 and 10 are allowed with the fast PWM
  171. int pwm = 2000;           // Starting value for 13-bit DAC. PWM is typ. @ 4540
  172. float pid_error;          // the error between current setiing and actual current,
  173.                           // used in the "PID" calculation to drive the MOSFET
  174. //==========================================================
  175.  
  176. void setup()
  177. {
  178.   Serial.begin(9600);
  179.   lcd.init(SCR_WD, SCR_HT);
  180.   font.init(customRect, SCR_WD, SCR_HT); // custom fillRect function and screen width and height values
  181.  
  182.  
  183. //inizializzazione EEPROM solo prima volta quindi remmare
  184.   //EEPROM.put(0, target_mA);                   //scrivi target_mA
  185.   //EEPROM.put(10, cutoff_voltage);             //scrivi cutoff_voltage
  186.   //EEPROM.put(20, kP);                                 //scrivi kP  
  187.   EEPROM.get(0, target_mA);
  188.   EEPROM.get(10, cutoff_voltage);
  189.   EEPROM.get(20, kP);
  190.  
  191. // Inizializza  INA219.
  192.   // Per impostazione predefinita, l'inizializzazione utilizzerà l'intervallo più ampio (32 V, 2 A). Tuttavia
  193.   // puoi chiamare una funzione setCalibration per modificare questo intervallo (vedi commenti).
  194.   ina219.begin();
  195.    
  196.   BT1.begin();
  197.   BT2.begin();
  198.   pinMode(end_sounder, OUTPUT);       // Output to sounder.
  199.   digitalWrite(end_sounder, LOW);
  200.  
  201. // Set up DAC pin come output
  202.   pinMode(pwm_pin, OUTPUT);
  203.  
  204. }
  205.  
  206. //const uint16_t lnCol  = RGBto565(255,150,255);
  207. const uint16_t ln2Col = RGBto565(180,180,180);          //bianco
  208. const uint16_t labCol = RGBto565(250,250,250);          //grigio
  209. const uint16_t v1Col  = RGBto565(100,250,100);          //verdino
  210. const uint16_t v4Col  = RGBto565(255,0,0);                      //rosso
  211. const uint16_t v2Col  = RGBto565(235, 164, 52);         //arancio
  212. const uint16_t v3Col  = RGBto565(66, 135, 245);         //azzurro
  213. const uint16_t v5Col  = RGBto565(255, 255, 0);          //giallo
  214.  
  215. int mode=0,lastMode=-1;
  216.  
  217. void setBigNumFont()
  218. {
  219.  
  220.   font.setFont(&rre_Bold13x20v);
  221.  
  222.   font.setSpacing(1);
  223.   font.setScale(1,2);
  224.   font.setDigitMinWd(16);
  225. }
  226.  
  227.  
  228. void drawField(int x, int y, int w, int h, char *label, uint16_t col=v3Col)   //disegna i campi
  229. {
  230.   lcd.drawRect(x,y+7,w,h-7,col);
  231.   font.setFont(&rre_term_10x16);
  232.   font.setScale(1);
  233.   font.setColor(labCol,BLACK);
  234.   int wl = font.strWidth(label);
  235.   font.printStr(x+(w-wl)/2,y,label);
  236. }
  237.  
  238.  
  239. void RUN_SETUP(){                               //stato 10
  240.   if (FIRST) {
  241.         lcd.fillScreen(BLACK);
  242.         setBigNumFont();
  243.         font.setFont(&rre_term_10x16);
  244.         font.setScale(2);
  245.         font.setColor(ln2Col);
  246.         font.printStr(10, 15, "Battery  Test");
  247.         font.printStr(65, 65, " v3.1.0");
  248.         font.setColor(v5Col);
  249.         font.printStr(10, 140, "BT1 >>  Setup");
  250.         font.printStr(10, 190, "BT2 >>  Run");
  251.         FIRST = false;
  252.   }    
  253.   //leggi pulsante BT1
  254.   if (BT1.pressed()) {
  255.     //entra in displaySetup  stato 0
  256.     stato = 0;  
  257.     FIRST = true;
  258.   }
  259.  
  260.   //leggi pulsante BT2
  261.   if (BT2.pressed()) {
  262.     //entra in displayRun  stato 20
  263.     stato = 20;  
  264.     FIRST = true;
  265.   }      
  266. }      
  267.  
  268. void displaySetup(){
  269.   if (FIRST) {
  270.     lcd.fillScreen(BLACK);
  271.         drawField(    0,  0,235,78," Target_mA ");
  272.         drawField(    0, 81,235,78," Cutoff_voltage ");
  273.         drawField(    0,162,240,78," Proportional Kp ");       
  274.     FIRST = false;
  275.   }
  276.   setBigNumFont();
  277.   int wv=font.strWidth("8888");                                                                         //lunghezza stringa      88.8
  278.   int wv2=font.strWidth("8.88");  
  279.   font.setFont(&rre_term_10x16);
  280.   font.setScale(1,2);
  281.   font.setColor(v1Col); font.printStr(134,36,"mA");
  282.   font.setColor(v1Col); font.printStr(141,115,"V");
  283.   font.setColor(v1Col); font.printStr(141,194,"%");
  284.  
  285.   //visualizza i dati
  286.   showVal(target_mA, 48,24, 4,0, v1Col);
  287.   showVal(cutoff_voltage, 48,106, 4,2, v1Col);
  288.   showVal(kP, 48,187, 4,1, v1Col);
  289.  
  290.   //leggi pulsante BT1
  291.   if (BT1.pressed()) {
  292.     //imposta target_mA
  293.     stato = 1;  
  294.  
  295.     FIRST = true;
  296.   }
  297.  
  298.   //leggi pulsante BT2
  299.   if (BT2.pressed()) {
  300.     //ritorna a displaySetup  stato 10
  301.     stato = 10;  
  302.     FIRST = true;
  303.   }
  304.  
  305. }      
  306.  
  307. void showVal(float v, int x, int y, int w,  int p, uint16_t col)
  308. {
  309.   setBigNumFont();
  310.   font.setColor(col,BLACK);
  311.   char txt[10];
  312.   dtostrf(v,w,p,txt);
  313.   font.printStr(x,y,txt);
  314. }
  315.  
  316.  
  317. void loop()
  318. {
  319.   switch(stato){
  320.         case 10:
  321.           RUN_SETUP();   
  322.           break;
  323.         case 0:
  324.           displaySetup();        
  325.           break;  
  326.         case 1:
  327.           setCurrent();
  328.           break;
  329.         case 2:
  330.           setVoltage();
  331.           break;
  332.         case 3:
  333.           setKP();
  334.           break;
  335.         case 20:
  336.           displayRun();
  337.           break;
  338.         case 30:
  339.           Messaggio();
  340.           break;
  341.         case 40:
  342.           result();
  343.           break;
  344.   }
  345.  
  346. }
  347.  
  348.  
  349. void setCurrent(){
  350.   if (FIRST) {
  351.     v1 = target_mA;
  352.         showVal(v1, 48,24, 4,0, v4Col);
  353.     //formatCifre( target_mA, 1);
  354.     FIRST = false;     
  355.   }
  356.  
  357.  
  358.   delay(1000);
  359.   while (BT1.read()) {       //leggi potenziometro
  360.         a1 = map(analogRead(potPin), 0, 1023, 0, 1500);
  361.         v1 = a1;       
  362.         showVal(v1, 48,24, 4,0, v4Col);
  363.         delay(200);
  364.   }
  365.  
  366.  
  367.   target_mA = v1;                 //salva valore target_mA
  368.   EEPROM.put(0, target_mA);                             //scrivi target_mA
  369.   showVal(v1, 48,24, 4,0, v1Col);
  370.   stato = 2;
  371.   FIRST = true;
  372. }      
  373.  
  374.  
  375. void setVoltage(){
  376.   if (FIRST) {
  377.     v2 = cutoff_voltage;
  378.         showVal(v2, 48,106, 4,2, v4Col);
  379.     //formatCifre( target_mA, 1);
  380.     FIRST = false;     
  381.   }
  382.  
  383.  
  384.   delay(1000);
  385.   while (BT1.read()) {       //leggi potenziometro
  386.         a2 = map(analogRead(potPin), 0, 1023, 0, 450)
  387.         b2 = float(a2);
  388.         v2 = b2/100;   
  389.         showVal(v2, 48,106, 4,2, v4Col);
  390.         delay(200);
  391.   }
  392.  
  393.  
  394.   cutoff_voltage = v2;              //salva valore target_mA
  395.   EEPROM.put(10, cutoff_voltage);               //scrivi cutoff_voltage
  396.   showVal(v2, 48,106, 4,2, v1Col);
  397.   stato = 3;
  398.   FIRST = true;
  399. }      
  400.  
  401.  
  402. void setKP(){
  403.   if (FIRST) {
  404.     v3 = kP;
  405.         showVal(v3, 48,187, 4,1, v4Col);  //formatCifre( target_mA, 1);
  406.    
  407.     FIRST = false;     
  408.   }
  409.  
  410.  
  411.   delay(2000);
  412.   while (BT1.read()) {    //leggi potenziometro
  413.         a3 = map(analogRead(potPin), 0, 1023, 0, 800);
  414.         b3 = float(a3);        
  415.         v3 = b3/10;    
  416.         showVal(v3, 48,187, 4,1, v4Col);
  417.         delay(200);
  418.   }
  419.  
  420.  
  421.   kP = v3;              //salva valore target_mA
  422.   EEPROM.put(20, kP);           //scrivi cutoff_voltage
  423.   showVal(v3, 48,187, 4,1, v1Col);
  424.   stato = 10;
  425.   FIRST = true;
  426. }
  427.  
  428.  
  429. void displayRun(){
  430.   if (FIRST) {
  431.     lcd.fillScreen(BLACK);
  432.         drawField(0, 0, 115, 78, " Voltage ");
  433.         drawField(120, 0, 115, 78, " Current ");
  434.         drawField(0, 81, 115, 78,"  PWM  ");
  435.         drawField(120, 81, 115, 78, "  PID  ");
  436.         drawField(0, 162, 115, 78," Capacity ");
  437.         drawField(120, 162, 115, 78," Time ");
  438.  
  439.         //--------------------------------------
  440.        
  441.     setupFastPWM();                                             // imposta registri DAC
  442.     analogWriteFast(pwm_pin, pwm);  // and set to zero PWM out (off)
  443.        
  444.         //* Con la risoluzione pwm più alta, ci vuole più tempo per passare a un'impostazione di corrente elevata
  445.     //* abbreviare il tempo di accelerazione
  446.         if (target_mA > 99){
  447.                 kP = 50;  // the maximum
  448.     }
  449.        
  450.         // bleep once to signal the start of the test
  451.     digitalWrite(end_sounder, HIGH);
  452.     delay(300);
  453.         digitalWrite(end_sounder, LOW);
  454.        
  455.         startMillisec = millis();   // get millisec timestamp for the starting point
  456.         //---------------------------------------
  457.        
  458.         FIRST = false;
  459.   }
  460.   setBigNumFont();  
  461.   font.setFont(&rre_term_10x16);
  462.   font.setScale(1,2);
  463.   font.setColor(v1Col); font.printStr(95, 36, "V");
  464.   font.setColor(v1Col); font.printStr(210, 36, "mA");
  465.   font.setColor(v1Col); font.printStr(80, 195, "mAh");
  466.  
  467.   // inizia test
  468.   // get the data from the INA219
  469.   readINA219();
  470.   //Serial.println("ciclo iniziato");
  471.    /*
  472.     * Questa è una routine "PID" molto semplificata per pilotare il MOSFET con un
  473.     * valore PWM, basato sulla differenza tra il valore target_mA impostato e il valore actual_mA misurato
  474.     * valore corrente.
  475.     */
  476.   pid_error = abs(target_mA - current_mA);
  477.   pid_error = (pid_error / target_mA) * 100;
  478.  
  479.   if ((!end_of_test) && (pid_error > tolerance)) {    // If out of tolerance (deadband to stop 'hunting')
  480.     pid_error = pid_error - offset;                   // Bias (long term error compensation)
  481.     pid_error = (pid_error * kP) / 100;               // 'proportional' factor reduces impact of 'raw' error.
  482.     pid_error = constrain(pid_error, 0.0, 50.0);      // limit to max incremental steps
  483.  
  484.     if (current_mA > target_mA){
  485.       pid_error = - pid_error;                        // Determine if it's a pos or neg error.
  486.     }  
  487.     pwm =  abs(pwm + round(pid_error));
  488.     pwm = constrain(pwm, 0, 8192-1);                  // constrain to 13-bit max
  489.   }
  490.  
  491.  
  492. //----------------------- Rilevamento Errori  o  Fine Test---------------------------------------------
  493.  
  494.         // check if the cell voltage has reached the set cut off voltage
  495.         // and abort the cycle if it has.
  496.         // end_of_test is used to stop further processing.
  497.  
  498.   if ((!end_of_test) && (loadvoltage < cutoff_voltage)) {
  499.     delay(3000);    // tenere conto di un breve calo quando iniziamo il processo di scaricamento
  500.     readINA219();   // read the values again
  501.     if (loadvoltage < cutoff_voltage) {
  502.       analogWriteFast(pwm_pin, 0);  // turn PWM off.                                
  503.       cutoff_voltage_reached = true;
  504.       target_mA = 0;
  505.       error_code = "  END TEST";  // display this on line 5 of theLCD
  506.                          
  507.       end_of_test = true;
  508.     }
  509.   }
  510.  
  511.         // Check if the measured current has overshot the target value
  512.         // by more than 100%. If so, we have a problem so abort.
  513.   if ((!end_of_test) && (current_mA > (target_mA * 2.0))) {
  514.      analogWriteFast(pwm_pin, 0);  // turn PWM off.
  515.      
  516.          target_mA = 0;
  517.      error_code = "ERR - Hi mA";  // display this on line 5 of the lcd
  518.      end_of_test = true;
  519.   }  
  520.  
  521.   // If the cycle takes too long, terminate it
  522.   if ((!end_of_test) && (tMins > time_limit)) {
  523.     analogWriteFast(pwm_pin, 0);  // turn PWM off.
  524.     timed_out = true;
  525.     target_mA = 0;
  526.     error_code = "ERR-Time Out"; // display this on line 5 of the lcd
  527.     end_of_test = true;  
  528.   }
  529.  
  530.   //* Se tutto è OK e non ci sono condizioni di errore,
  531.   //* uscire dal nuovo valore PWM per regolare la corrente.
  532.   if ((cancel == 0) && (!timed_out) && (!high_current) && (!cutoff_voltage_reached) && (!end_of_test)) {
  533.     analogWriteFast(pwm_pin, pwm);  // Adjust the 13-bit PWM to the calculated error correction value.
  534.   }
  535.   else {  // if the process is terminated, sound the beeper, but only once
  536.     if (!sounded) {
  537.       sounded = true;
  538.       for (int i = 0; i< 3; i++) {
  539.         digitalWrite(end_sounder, HIGH);
  540.         delay(300);
  541.         digitalWrite(end_sounder, LOW);
  542.         delay(100);
  543.       }
  544.     }          
  545.         //entra in Messaggio  stato 30
  546.         stato = 30;
  547.         FIRST = true;
  548.   }
  549.  
  550. //-----------------------------------------------------------------------------------------------------
  551.  
  552.  
  553.   // * Calcola il tempo trascorso e i mAh utilizzati ciascuno
  554.   // * secondo giro del giro.
  555.    
  556.   getTime();
  557.   // calculate the mAh capacity so far of the cell
  558.   if (millis() > millisCalc_mAh + 1000) {
  559.     float this_hours = (millis() - startMillisec) / (1000.0 * 3600.0);
  560.     mAh_soFar = mAh_soFar + ((this_hours - last_hours) * current_mA);
  561.     last_hours = this_hours;  
  562.     millisCalc_mAh = millis();
  563.   }
  564.  
  565.   // finally, update the lcd with the fresh values
  566.   write_to_lcd();
  567.  
  568.   //leggi pulsante BT2  
  569.   if (BT2.pressed()) {
  570.         analogWriteFast(pwm_pin, 0);  // turn PWM off.
  571.     target_mA = 0;
  572.         cancel = 1;
  573.         end_of_test = true;  //false;
  574.        
  575.         //entra in Messaggio  stato 30
  576.         stato = 30;
  577.     FIRST = true;
  578.   }      
  579. }                                       // end of displayRun
  580.  
  581.  
  582.  /*
  583.   * Ottieni corrente e tensione dalla scheda breakout Adafruit INA219.
  584.   *
  585.   * L'INA219 non è stato originariamente progettato per essere utilizzato in questo tipo di applicazione.
  586.   * Doveva aiutare a calcolare e visualizzare la capacità della batteria per i laptop,
  587.   * tablet e telefoni. In queste applicazioni, la precisione non è realmente richiesta.
  588.   *
  589.   * In questa applicazione, la lettura corrente INA219, che all'inizio è molto nervosa,
  590.   * viene utilizzato per pilotare un MOSFET nella regione lineare. Thge MOSFET viene utilizzato come resistenza variabile.
  591.   * Un cambiamento di tensione molto piccolo (singolo mVolt) applicato al Gate si tradurrà in un cambiamento abbastanza grande
  592.   * modifica corrente. Questo è il motivo per cui ho utilizzato un PWM a 13 bit, per ottenere una risoluzione migliore.
  593.   * Le letture INA219 devono essere mediate un numero di volte per ottenere valori ragionevolmente stabili.
  594.   *
  595.   */
  596. void readINA219() {   // Obtain the INA219 readings.
  597.   float R = 0.09;     //modifica questo valore per compensare le perdite
  598.                       //di resistenza del circuito.
  599.   float temp_mA = 0.0;
  600.   float temp_V = 0.0;
  601.   float temp_shunt = 0.0;
  602.   shuntvoltage = 0;
  603.   busvoltage = 0;
  604.   current_mA = 0;
  605.  
  606.   for (int i = 0; i< 10; i++) {               // attempt to pre-filter the readings
  607.     temp_shunt = ina219.getShuntVoltage_mV(); // Voltage accross the shunt in mV.
  608.     delayMicroseconds(600);
  609.     shuntvoltage += temp_shunt; // Sum results
  610.   }
  611.   shuntvoltage = shuntvoltage / 10;
  612.      
  613.   for (int i = 0; i< 10; i++) {          // attempt to pre-filter the readings
  614.     temp_V = ina219.getBusVoltage_V();   // Voltage from INA219 minus to gnd in V
  615.     delayMicroseconds(600);
  616.     busvoltage += temp_V; // Sum results
  617.   }
  618.   busvoltage = busvoltage / 10;
  619.  
  620.   // the readings for the current are very jittery
  621.   for (int i = 0; i< 20; i++) {         // attempt to pre-filter the readings
  622.     temp_mA = ina219.getCurrent_mA();   // Current through the shunt in mA
  623.     delayMicroseconds(600);
  624.     current_mA += temp_mA; // Sum results  
  625.   }
  626.   current_mA = current_mA / 20;
  627.  
  628.   vR = R * current_mA / 1000;                               // Circuit/wire resistance factor
  629.   loadvoltage = busvoltage  + (shuntvoltage/1000) + vR;     // Total cell voltage
  630. }
  631.  
  632.  
  633.  /*
  634.   * Scrivere i valori ottenuti sullo schermo LCD
  635.   *
  636.   * Il modo più semplice è semplicemente cancellare lo schermo e costruirlo prima
  637.   * inviandolo di nuovo.
  638.   *
  639.   * Il testo per il display LCD viene prima inserito in un buffer prima di essere trasferito
  640.   * lo schermo invocando la funzione display().
  641.   *
  642.   * Per rendere più piacevole la visualizzazione dei numeri in varie dimensioni, ho provveduto a
  643.   * posizionare i numeri giustificati a destra. Questa è l'unica "complessità" in questo codice.
  644.   *
  645.   */
  646. void write_to_lcd() {
  647.  
  648.   //visualizza i dati
  649.   showVal(loadvoltage, 10, 24, 4, 2, v5Col);
  650.   showVal(current_mA, 130, 24, 4, 0, v5Col);
  651.   showVal(pwm, 10, 106, 4, 0, v2Col);
  652.   showVal(pid_error, 130, 106, 4,1, v2Col);
  653.   showVal(mAh_soFar, 10, 187, 4, 0, v4Col);
  654.  
  655.   //converti valori tempi in stringa
  656.   sprintf(str_h, "%02d", hours);
  657.   sprintf(str_m, "%02d", mins);
  658.   String string_h = str_h;
  659.   String string_m = str_m;
  660.   String s = string_h + ":" + string_m;         //stringa composta  hh:mm
  661.  
  662.  
  663.   int buffer_len = 6;
  664.   char buffer[buffer_len];
  665.  
  666.   s.toCharArray(buffer, buffer_len);
  667.  
  668.   font.printStr(130, 187, buffer);                      //visualizza tempo trascorso
  669.  
  670. }
  671.  
  672.  
  673. /*
  674.  * Routine generica per calcolare ore, minuti e secondi tra due valori millis().
  675.  */
  676. void getTime() {
  677.      
  678.  long day = 86400000; // 86400000 milliseconds in a day
  679.  long hour = 3600000; // 3600000 milliseconds in an hour
  680.  long minute = 60000; // 60000 milliseconds in a minute
  681.  long second =  1000; // 1000 milliseconds in a second
  682.  
  683.      
  684.  unsigned long timeNow =  millis() - startMillisec;
  685.  tMins = timeNow / minute;
  686.  
  687.  days = timeNow / day ;                              
  688.  hours = (timeNow % day) / hour;                      
  689.  mins = ((timeNow % day) % hour) / minute ;        
  690.  secs = (((timeNow % day) % hour) % minute) / second;
  691. }
  692.  
  693.  
  694. void Messaggio(){
  695.   if (FIRST) {
  696.     lcd.fillScreen(BLACK);
  697.         drawField(    0, 81,235,88," Message");
  698.         setBigNumFont();
  699.         font.setFont(&rre_term_10x16);
  700.         font.setScale(2);
  701.         font.setColor(v2Col);
  702.        
  703.         //converti stringa in char
  704.         if (cancel == 0) {
  705.                 String m = error_code;          //stringa messaggio errore
  706.                 int buffer1_len = 13;
  707.                 char buffer1[buffer1_len];
  708.                 m.toCharArray(buffer1, buffer1_len);   
  709.                 font.printStr(10, 115, buffer1);
  710.         }
  711.         else {
  712.                 font.printStr(10, 115, "  CANCELLED");         
  713.         }              
  714.         FIRST = false;
  715.   }
  716.   //leggi pulsante BT2
  717.   if (BT2.pressed()) {
  718.     //entra in result  stato 40
  719.     cancel = 0;
  720.         stato = 40;  
  721.     FIRST = true;
  722.   }
  723. }
  724.  
  725.  
  726. void result(){
  727.   if (FIRST) {
  728.     lcd.fillScreen(BLACK);
  729.         drawField(0, 0, 115, 78, " Voltage ");
  730.         drawField(120, 0, 115, 78, " Current ");
  731.         drawField(0, 81, 115, 78,"  PWM  ");
  732.         drawField(120, 81, 115, 78, "  PID  ");
  733.         drawField(0, 162, 115, 78," Capacity ");
  734.         drawField(120, 162, 115, 78," Time ");
  735.  
  736.         setBigNumFont();  
  737.         font.setFont(&rre_term_10x16);
  738.         font.setScale(1,2);
  739.         font.setColor(v1Col); font.printStr(95, 36, "V");
  740.         font.setColor(v1Col); font.printStr(210, 36, "mA");
  741.         font.setColor(v1Col); font.printStr(80, 195, "mAh");
  742.        
  743.         write_to_lcd();
  744.         FIRST = false;
  745.   }
  746.   //leggi pulsante BT2
  747.   if (BT2.pressed()) {
  748.     //entra in run/setup  stato 10
  749.     stato = 10;  
  750.     FIRST = true;
  751.   }            
  752. }
(#) antikzsolt válasza mraulajos hozzászólására (») Aug 4, 2024
Pont ezért van nekem kikapcsolva az online vásárlás. Igaz macera hogy mindig visszakapcsolgassam de havonta az a 2 alkalom be és kikapcsolás nem megöltető. De ha ennek ellenére is valahogy megoldják hogy lopjanak vásárlás segítségével akkor ott már a bank a bűnös. Amúgy volt rá már precedens hogy próbáltak vásárolni vele csak nem sikerült. A próba még ment (ezer valahány ft)Mert a napi limitet már aznap elértem. Kártya csere, feljelentés megvolt ismeretlen tettes ellen. 2-3 hónap múlva ügy lezárva nincs gyanúsított. Pedig a bolt tuti be van kamerázva. Csak hogy a fenébe jutottak hozzá a kártya adataimhoz? A kártyán le van ragasztva a számok, számlák kifizetésén kívül sosincs elő véve. Pénzt leveszem vagy vásárlás esetén azzal fizetek. A számlán egyéb esetben mindig csak annyi marad hogy a havi kv/csoki pénz meglegyen rajta.
A hozzászólás módosítva: Aug 4, 2024
(#) tunerman válasza tunerman hozzászólására (») Aug 2, 2024
A mai napon is haladtam a projektemmel, a hálózati transzformátor bekötése volt először soron.
Majd a nagyáramú JAN 3913 gold diode négyes következettt, az ezüstszalagra való ráforrasztáshoz kettő pákát kellett beüzemelnem
Majd a tápegységek vezetékezése következett, fájt a szívem mikor méretre kellett vágnom a Tango fojtók hosszú kivezetéseit .
Jövő héten az Audio note 850 SPe kábel feldarabolása következik, remélem a megvásárolt kábel hossza kifogja adni amit kell.
TJ.
(#) tunerman válasza tunerman hozzászólására (») Aug 1, 2024
Helyére került a Münchhausen drive input 2SK79 V-FET-es egysége, ez valójában az erősìtő első felét tartalmazza.
A kettő bejővő és kettő elmenő vezeték az Audio note Kondo KSL SPz kábel kibontott belső ereiből készült. Az elmenő vezetékek egymás melletti futása nem okozhat semmilyen gondot, mivel bennük azonos fázisú jelek haladnak ...ez a Münchhausen drive működésének lényegi eleme
TJ.
Következő: »»   3 / 196
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