- Yettel topik
- Xiaomi 12 - az izmos 12
- Xiaomi Smart Band 7 - hetedik
- Milyen hagyományos (nem okos-) telefont vegyek?
- iPhone topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Megérkezett a Google Pixel 7 és 7 Pro
- A Honor és a Huawei uralja a kínai mobilpiacot
- Vodafone mobilszolgáltatások
- Samsung Galaxy A54 - türelemjáték
Hirdetés
-
Rossz üzlet az EV-kölcsönzés
it Küszködik az EV-kölcsönzés miatt a Hertz Global, még több EV-t adnak el.
-
Rövid előzetesen a S.T.A.L.K.E.R. 2: Heart of Chornobyl
gp Továbbra is szeptemberi premierrel számolnak a fejlesztők, reméljük több halasztásra már nem kell számítanunk.
-
Igencsak szerény méretekkel rendelkezik az Aetina Xe HPG architektúrás VGA-ja
ph Az 50 wattos modellt beágyazott rendszerekbe, MI-vel kapcsolatos munkafolyamatokhoz és edge applikációkhoz szánták.
-
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
-
zsolti_20
senior tag
Sziasztok! Szeretnék építeni egy szolenoid kapcsoló szerkezetet amihez az áramforrást 18650-ről szeretném megoldani.
Régebben már építettem egy viszonylag jó kapcsolást egyszerűbb dolgokhoz, de a szolenoidhoz kicsit több áramerősség szükséges, amit a jelenlegi 5v DC-DC converter nem igazán bír kezelni.
Van itthon egy elég jó power bankom, ami képes 2.1A-t leadni 5V, mellett ez elég volt a 2 szolenoid kapcsolóhoz, de nem szeretnék egy komplett power bankot befogni erre. Tudnátok légyszíves ajánlani olyan DC-DC convertert ami a 3.7V-os 18650-ből tud stabil 5V-ot csinálni a lehető legnagyobb áramleadás mellett?
Jelenleg ezt használom:
[link]
De ez egész biztosan nem tudja a leírtakat, mivel 3-at párhuzamba kötve sem bírt el egy szolenoid kapcsolóval, nekem pedig kettőt kellene kapcsolnom.
Köszönöm! -
nagyúr
Na, összeszedtem pár javasolt alkatrészt kifejezetten smart car témában:
UNO/Mega kompatibilis cuccok:
TB6612 Mosfet Stepper Motor PCA9685 Standard IIC I2C PWM Servo Driver Shield V2 For Arduino Robot PWM Mega R3 Replace L293D
[link]
Én ilyet használok a mega boarddal, de akkor még nem volt ennyire drága Előnye, hogy van rajta egy kisebb proto pcb, ahová fel lehet forrasztani kisebb dolgokat, kijelzőt, LED-eket.2Pcs 1:120 electric TT Motor Durable Dual Shaft DC 3V ~ 9V DC Geared Motor for Robot Toys Smart Car Replace DIY Kit
[link]
Ahogy írtam, egy vonalkövető robothoz jobb a lassú motor, mert hiába lehet PWM-mel szabályozni, de bizonyos kitöltés alatt nem mozdul meg, csak zúg.Optokapu az encoderhez (a kerék sebességét lehet vele mérni):
[link]Reflektív opto, ütközés/közelségérzékeléshez:
[link]Vonalkövetéshez nem kifejezetten alkalmas, oda színes LED + fototranzisztor kell, ilyet készen most nem találtam, az enyémen sincs amúgy, de lenne rá igény
I2c RGB szenzort találtam, de a vonalkövetéshez legjobb 3-5 szenzort egymás mellé tenni, a vonal vastagságától függő távolságban. Ezt egyszerűbb és olcsóbb otthon legyártani.Bluetooth modul:
[link]
A HC06 csak vevő, telefonnal lehet párosítani, a HC05 az master-ként is tud működni, saját távirányítót lehet belőle építeni.D1 mini/ESP kompatibilis cuccok:
360 fokos szervó
[link]A hangsúly a 360fok / folyamatosan körbe forgó (continuous) tulajdonságon van, ezek át vannak alakítva, hogy ne csak oda-vissza tudjon forogni, hanem folyamatosan is. Nem kell hozzá driver, a fentihez még kereket is adnak.
D1 mini motor shield
[link]
Ha mégis DC motort szeretnél használni (janos250 linkelt egy kis méretű motort, ami jó hozzá).Ha majd még eszembe jut valami, megírom.
[ Szerkesztve ]
-
nagyúr
Megnéztem, nagyon jó kis kezdő szett annak, aki nem szeretne forrasztással bíbelődni, csak plug-and-play.
Sajnos semmilyen részletet nem ír az alkatrészekről, de a motor a videó alapján talán a nagyobbik (1:120) áttételű lehet. Én mégis azt mondom, hogy pont neked való lenne. -
nagyúr
-
tibi-d
tag
Ha valaki elmagyarázná, miért nem helyes a következő sor:
null, nulla = 0;
Vagyis miért nem lehet több változónak ugyanazt az értéket adni egy sorba rendezve. A fordító hibajelzés nélkül lefordítja, csak nem hajtódik végre.[ Szerkesztve ]
-
#68216320
törölt tag
Sziasztok.
Van ötletetek arra, hogy milyen megoldással lehetne egy microSD kártya foglalatból vezetéken kihozni az ereket?
Lehet ugyan kapni szalagkábellel extender-t, de nekem arra volna szükségem, hogy a kártya slotba belemenjen egy dummy kártya, ami a másik oldalán pin-ekben végződik.
Létezik ilyesmi? -
Wolfram
aktív tag
Egysoros http get hívást tud valaki ESP32-n? kb. ennyi kellene:
String data = http.get("http:\\hostname\query"); -
Janos250
őstag
válasz Wolfram #19320 üzenetére
Nincs ez elbonyolítva.
Hirtelenjében ezt hoztam össze.
Ha erre gondoltál használd, ha nem, majd valakinek valamire hátha jó lesz.#define __cplusplus 201103L
#include <WiFi.h>
#include <WiFiClient.h>
#include <string>
#include <iostream>
#include <fstream> // ofstream
#include <stdio.h>
using namespace std;
#define remoteServerPort 80
//const char* ssid = "*********";
//const char* password = "*********";
uint8_t ServerIPlocal[] {192,168,0,30} ;
uint8_t gatewayIPlocal[] {192,168,0,1} ;
uint8_t subnetIPlocal[] {255,255,255,0} ;
WiFiServer remoteServer (remoteServerPort );
WiFiClient remoteServerClient ;
void setup() {
delay(1000);
Serial.begin(115200) ;
delay(1000);
WiFi.begin(ssid, password );
delay(2000);
WiFi.config(ServerIPlocal, gatewayIPlocal, subnetIPlocal) ;
WiFi.setAutoReconnect(true);
delay(2000);
printf("\nConnecting to %s \n",ssid);
uint8_t i = 0;
while (WiFi.status() != WL_CONNECTED && i++ < 20){
printf(".");
delay(500);
}
if(i == 21){
printf("\nCould not connect to \n",ssid);
while(1) delay(500);
} ;
string strMyURL = "http://"+
to_string(WiFi.localIP()[0])+"."+
to_string(WiFi.localIP()[1])+"."+
to_string(WiFi.localIP()[2])+"."+
to_string(WiFi.localIP()[3])+":"+
to_string(remoteServerPort)
;
printf("My URL: %s \n",strMyURL.c_str() );
uint8_t ip[]{192,168,0,33};
String valasz = httpGet((IPAddress)ip) ;
Serial.println(); Serial.println(); Serial.println(); Serial.println();
Serial.println("ez a valasz:");
Serial.println(valasz);
} // end setup
void loop() {
} ; // end loop
String httpGet(IPAddress ip){
const char GET_HTTP[] PROGMEM = R"=====(
GET / HTTP/1.1
)=====";
uint16_t idozites ;
String reply ;
WiFiClient remoteServerClient ;
if (!remoteServerClient.connect(ip,80)){
return "no connect";
Serial.println ("connect hiba");
} ;
// Serial.println ("connected");
remoteServerClient.println(GET_HTTP);
idozites = 0 ;
reply = "" ;
while (
remoteServerClient.available() ||
(idozites++ < 500)
) // rxBuffer->available()
{
if (remoteServerClient.available()){
char c=remoteServerClient.read();
idozites = 0 ;
reply += c ;
// printf("%c",c);
}
else{
delay(1);
}; // if (remoteServerClient.available())
} ; // end while (remoteServerClient.available())
// printf("\n");
remoteServerClient.stop(); // _rxBuffer = NULL; _connected = false;
// Serial.println();Serial.println();Serial.println();Serial.println();
// Serial.println("Ez a string");
// Serial.println(reply);
return reply ;
};
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
weiss
addikt
válasz Wolfram #19320 üzenetére
Esetleg ezzel tegyél egy próbát, nem teszteltem, csak hogy fordul-e.
#include <HTTPClient.h>
class customHTTPClient : public HTTPClient
{
public:
using HTTPClient::GET;
String GET(const String &url)
{
String result;
if(begin(url))
{
if(GET() > 0)
{
result = getString();
}
end();
}
return result;
}
};
void setup()
{
customHTTPClient http;
String result = http.GET("http://www.test.com");
}I did nothing, the pavement was his enemy!
-
nagyúr
válasz #68216320 #19323 üzenetére
Kell egy darab nyáklap, amire alkoholos tűfilccel rárajzolod az érintkezőket méretarányosan, és valaki kimaratja neked. Szerintem csak akad itt a topikban is valaki helybeli, aki sörért/csokiért segít.
Utána valószínűleg le kell csiszolni a másik oldalát, hogy ne legyen vastagabb, mint egy microSD kártya. -
Harcipocok84
junior tag
Sziasztok!
Használom Arduino Mega-val az EEPROM library-t.
Jellemzően INT Értékeket mentek el különböző memóia területekre, minden 5. memória címre írok ki egy-egy változó értékét, tehát nincs átfedés.Tökéletesen működik is, szépen írja-olvassa az értékeket ki-be kapcsolás utána az eszköz. Az értékeket mentés előtt lekorlátozom, amint a maximális érték felé megy akkor újra értéket adok neki ami a maximális értékkel egyenlő. Ez is működik, nem tudom magasabbra állítani az értéket.
Viszont történt egyszer, hogy beállítottam egy értéket 50-re, majd újraindítás utána 27000 körüli értéket dobott vissza, pontosan már nem tudom mennyi volt.
Ez miért lehetett szerintetek? mikor ment el fals adatot? mihez kapcsolható ez az érték (gondolok itt arra, hogy valamilyen típus maximális értéke, stb...)
Természetesen ügyelek rá, hogy ne loopban legyen az EEPROM írás/olvasás, csak értékadáskor nyúl az eepromhoz...[ Szerkesztve ]
-
nagyúr
válasz Harcipocok84 #19328 üzenetére
Szia! Ha ez egyedi eset volt, akkor bármi lehet. Az EEPROM írás viszonylag hosszú művelet, az is lehet, hogy éppen akkor áramtalanítottad, mikor írt volna, és még egy korábbi értéket kaptál vissza.
Az is lehet, hogy az egyik cella egyik bitje elérte a maximális írási mennyiséget és csendben elromlott. Talán 10ezer írást bír egy ilyen EEPROM cella, te tudod, hányszor írtál bele. Próbáld a hibát reprodukálni, ha tudod melyik cella volt.[ Szerkesztve ]
-
Harcipocok84
junior tag
Sajnos pont az a bajom, hogy nem tudom reprodukálni és zavar, hogy nem tudom miért történt. Programozási hiba talán kizárva. Az EEPROM címek nem fedik egymást, és egyik változó sem akar a másik EEPROM mezőjébe írni. A menthető értékek ahogy írtam maximalizálva vannak, tehát még 150 felé sem mehetett volan az érték, mert ha értékadás utána 150 feletti az érték akkor 150-re visszaírja és csak ezután történik az EEPROM-ba írás.
Az hogy a szóban fordó EEPROM cím "elhasználódott" kizárt, mert max. 100-200db írás történhetett rá eddig. Bár én ha jól tudom az olvasás is bele számít az elhasználódásba, nem tudom hogy igaz-e...Működött szépen az eszköz, menet közben átírtam az adott értéket 100-ról 120-ra, elmentettem az EEPROM-ba, majd az eszköz működött szépen tovább. Hozzáteszem mentés utána újra beolvassa az értékeke és ebből dolgozik tovább, tehát a mentéskor még jó érték volt benne, és visszaolvasáskor is jó volt.
Majd jött egy áramtalanítás,elindult az eszköz, setup részben beolvastam újra mindent, és ott már a rossz érték volt. Visszaírtam az értéket 120-ra, újra elmentettem, majd újabb áramtalanítás után megtartotta a jó értéket, és azóta is jól működik áramtalanítás után is.Egyszer hülyüt meg.... És ez nagyon zavaró...
Esetleg egy öteletem van: a felhasználó szerint, volt egy olyan pillanat, amikor bekapcsolta, majd szinte azonnal ki is kapcsolta.
- Elképzelhető olyan, hogy pont olvasta azt az adott EEPROM címet amikor hirtelen kapott egy áramtalanítást, így az "megsérült"? Olvasás tönkre tudja tenni a cím tartalmát ha idő előtt befejeződik?
- Olvastam valamit a Brown-out-ról, hogy talán pont az ilyen dolgok ellen véd? Hogy ha éppen EEPROM művelet zajlik, és megszűnik a táp akkor előtte befejez minden EEPROM műveletet? DE NEM AKARLAK EZZEL megvezetni, lehet semmi köze hozzá...[ Szerkesztve ]
-
ekkold
Topikgazda
válasz Harcipocok84 #19330 üzenetére
Az EEPROM kb. 10^6 irást bír ki (egymillió). Az olvasás nem számít, akárhányszor olvasható. Megsérülni akkor tud a tartalma, ha írás közben fogy el a táp.
Ha reprodukálható a hiba, akkor azért a szoftverhiba is esélyes. Az EEPROM-ba mentéshez szoktam definiálni egy struktúrát a mentendő adatok számára, ezt használva gyakorlatilag nem lehet elrontani a címzést sem.
[ Szerkesztve ]
-
cog777
senior tag
válasz Harcipocok84 #19330 üzenetére
Ha fontos az adat amit elmentesz, lehet hogy mentenek melle egy CRC/checksum whatever extra meta adatot es azzal ellenoriznem a beolvasott adatot. Ha hibas, akkor egy alapertek hasznalnek. (esetleg naploznam ezeket az esemenyeket egy sd kartyara, de ez mar nagyon extra)
HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
-
#68216320
törölt tag
válasz Harcipocok84 #19330 üzenetére
Lehet, hogy butaság, de mi van olyankor, ha dupla rekordot használsz az íráshoz?
1.a. első rekordba beírod a tartalmat
1.b. visszaolvasod az első rekord tartalmát
1.c. ha klappol, akkor csinálsz egy crc-t, ezt beírod a második rekordba2.a. második rekordba beírod a tartalmat
2.b. visszaolvasod a második rekord tartalmát
2.c. ha klappol, akkor csinálsz egy crc-t, ezt beírod az első rekordbaÍgy hiba esetén (crc error) van egy valid adatod.
-
őstag
válasz Harcipocok84 #19328 üzenetére
A probléma megértéséhez kicsit bele kell mélyedni az EEPROM-ok lelki világába.
Fizikai rétegen egy eeprom írás igazából úgy zajlik, hogy törlődik az összes byte. Ez az általános elképzeléssel ellentétben nem azt jelenti, hogy nullázódik, hanem azt, hogy minden érték 1 lesz. Majd ebből az állapotból szelektíven állít mindent nullára.
Ugyebár te egy viszonylag kicsi tartományon operálsz, tehát a bytejaid (arduino int 2 byte) valahogy így festenek:
0b1000000010010110 (előjelbit, +150 15 maradék biten)
Amikor a dínó írni próbál, átáll erre:
0b1111111111111111
majd elkezd nullázni. Ha azonban nem ér végig brownout miatt például, akkor kapsz a memóriába egy bármilyen számot, ami 32,767 és az általad menteni kívánt szám között szerepel valahol.Ha kritikus információt akarsz menteni, akkor ahogy a többiek írták, mentsd el többször, és vezess ellenőrző összeget a mentésekről, hogy tudd, ki a hibás.
[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
Harcipocok84
junior tag
válasz razorbenke92 #19334 üzenetére
Na, ez már valami amin elindulhatok. A Brown-out detection alapból ki is van kapcsolva nálam. Viszont alapból 2,7V-on áll, ami nagyon kicsi, nem?
Mit csinál pontosan ez a brown-out? Valamiért beesik a feszültség és ilyenkor ha éppen EEPOM műveletben van akkor azt befejezi? de hogyan?
Illetve ha tényleg ez történt volna hogy beesett a feszültség a kritikus alá, akkor nem kellett volna hogy újrainduljon az arduino? De nem indult újra, végig tudott menni a folyamaton és használt is utána.... -
őstag
válasz Harcipocok84 #19335 üzenetére
A brown-out önmagában azt jelenti, hogy a mikrokontroller olyan üzemi feszültségen kezd működni, ahol már instabillá válHAT. Tehát ezen a tartományon még nem feltétlenül indul újra, de már csinálhat buta dolgokat.
Ezek a buta dolgok magukban foglalnak olyan eseteket is, amikor a feszültség már nem elegendő például egy eeprom lebegő tranzisztorának átkapcsolására.
Kérdésedre válaszolva: EEPROM írás befejezésében nem tud segíteni, inkább abban segít, hogy az írás el se kezdődjön.
Ha az írás előtti pillanatban még nem alacsony a feszültség, akkor azt az egy írási műveletet megszakítatlanul be tudja fejezni. (Megfelelően kondenzátorozott elektronika esetén a brownout feszültség felső határától a blackoutig van annyi energia, hogy egy-egy byte eeprom írást még befejezzen vele).Amikor a brownout detection be van kapcsolva, olyankor a mikrokontroller felismeri mikortól nem kellene pl. EEPROM írásba fogni, és szándékosan reset állapotba teszi magát, így még akkor is újraindul, ha nem kéne, sőt általában beállít egy status bitet is, amiben jelzi magának, hogy az újraindulás oka az alacsony feszültség volt.
Ha nálad nincs bekapcsolva, az pontosan okozhat olyan gondot, hogy a kódfutás megszakítatlan, de az eeprom-ba szemetet írsz, ha nincs meg a kellő tápfeszültséged. Definíció szerint az ilyen állapotokat igyekszik a brownout-detection megakadályozni.
Szerk.:
2.7V lehet kicsi, de akár nagy is. Ez az Atmega328p esetében 10MHz órajelhez a biztonságos feszültség.
Ezt mehet feljebb, 20MHz esetén 4.5V, de lehet akár még alacsonyabb is, ugyanis a chip minimum feszültsége 1.8V a 8MHz-es belső oscillátort használva.
Ha az elterjedt Nano/Uno kártyák valamelyikét használod, akkor azon 16MHz oscillátor lesz, tehát inkább átmennék 4.5V-ra.[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
ViZion
félisten
ESPEasy-ben a goto/return vagy gosub hogy van megoldva? Lehet, h csak nem találom és van...
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
-
tibi-d
tag
Szeretném megérteni a noInterrupt, interrupt páros működését. Van egy feladat, ahol egy timerinterrupt másodpercenként lefuttat egy taskot. Viszont a programnak van olyan része, ami nem szereti, ha megszakítják. Az a kérdésem, hogy ha a noInterrupttal leállítom a megszakítást mondjuk az utolsó megszakítás után 0.6 másodperccel később, és engedélyezem 0.7-kor, akkor az időzítés hogy alakul? Folytatja 0.6-tól, esetleg 0.7-től, vagy kezdi előről az 1s-ot?
-
nagyúr
válasz tibi-d #19338 üzenetére
Nem a timert állítod le, csak letiltod az interruptot. Annyi mellékhatása lehet, hogy egy interrupt kicsivel később fog kiváltódni, mert két flag egyszerre szükséges hozzá: a timer interrupt és az interrupts enabled. A timer lefutásával beállítja az interrupt flag-et, az úgy is marad, amíg a másikat újra nem engedélyezed.
Ha a timert az interrupton belül inicializálod, akkor értelemszerűen onnantól annyival el lesz csúszva. -
Harcipocok84
junior tag
válasz razorbenke92 #19336 üzenetére
Nagyon szépen érthetően leírtad, köszönöm!
Sajnos az van amitől tartottam... Ha be van kapcsolva a brownout akkor bármikor újraindulhat ezek szerint a vezérlő, ami egy automatizált folyamat közben nem a legszerencsésebb. Én ezért is kapcsoltam ki. És így eddig soha nem indult újra, nem szakadt meg a folyamat, ellenben előfordulhat hogy hülyeséget ír az EEPROM-ba.... Egyébként Atmega2560-at használok, 16MHz a kristály, ezek szerint 4,7-et kellene beállítanom. -
nagyúr
válasz Harcipocok84 #19340 üzenetére
Azért ne ess kétségbe, nem áll meg itt a tudomány.
Meg lehet ezt kvázi bolondbiztosra is csinálni.Tegyél egy nagy kondenzátort a táp és a gnd közé, a kondenzátor elé nyitó irányban pedig egy schottky diódát.
Az egyik szabad analóg pinre kösd rá a tápfeszültséget a dióda előtti részről egy áramkorlátozó ellenálláson keresztül. Az 5V tápot osztás nélkül rá tudod kötni, az ellenállás azért kell, hogy bekapcsoláskor ne azon keresztül töltődjön a kondi.
Minden EEPROM írás előtt nézd meg, hogy kap-e még (kívülről) megfelelő tápot a cucc. Ha elég nagy kondit teszel oda, a tápfesz elvétele után még akár pár másodpercig is képes üzemelni, így biztonságosan le tudod állítani. Ez a véletlen brownout-okat is ki tudja küszöbölni (bizonyos szintig), de a megoldás igazából az lenne, ha stabil tápot kapna és nem kapcsolgatná ki senki random módon, ha már fontos automatizált folyamatot vezérel.
-
őstag
Jó ötlet a saját implementációjú BOD.
Nem resetel magától, de megvéd a rossz írástól.Ha esetleg a hardver módosítás akadály lenne, akkor szoftverből is megoldható egy kis trükközéssel.
Az atmega tartalmaz egy beépített feszültségreferencia adót, ami kvázi egy ultrapici 1.1V stabkocka.
Az analóg referencia feszültség a legtöbb alap tervezésben egyezik a tápfeszültséggel, tehát az analóg mérés 1023 esetén a pillanatnyi tápfesz, fele esetén fél tápfesz, stb.
Ha megméred az internal vref feszültségét, abból vissza tudsz skálázni a tápfeszre.
Pl. ha 512-nek méred, akkor kb. 2.2V a tápfesz. Ha 256-nak, akkor kb. 4.4V[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
nagyúr
válasz razorbenke92 #19342 üzenetére
Az atmega tartalmaz egy beépített feszültségreferencia adót, ami kvázi egy ultrapici 1.1V stabkocka
...
Ha megméred az internal vref feszültségét, abból vissza tudsz skálázni a tápfeszre.Ezt meg lehet csinálni? Hogy? Úgy tudom a beépített 1.1V feszültséget csak referenciaként lehet használni analóg méréshez, de azt magát nem lehet megmérni. 🤔
-
Harcipocok84
junior tag
Jelenleg a betáp után (ami egyébként stabil 6V) van egy LF50CV, ami szépen kreál stabil 5V-ot. Azután van egy fóliakondi majd azt követ egy 1000uF-os kondi, és ezután van az Arduino betáp lábjai. Majd nem messze onnan ismét van egy 1000uF-os kondi, de az inkább a bluetooth modul miatt van benne. Biztos vagyok benne hogy nem ez a legelegánsabb megoldás, de ez eddig működött tökéletesen, és ettől az egy EEPROM hibától eltekintve nem volt más gond vele. Tudom hogy a fesztab IC elé is kellene kondi, de alapból stabil tápról kapja már a 6V-ot is.
[ Szerkesztve ]
-
őstag
long readVcc()
{
long result; // Itt olvasod ki a belső referenciát AVCC-hez viszonyítva
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(2);
ADCSRA |= _BV(ADSC);
while (bit_is_set(ADCSRA,ADSC));
result = ADCL;
result |= ADCH<<8;
result = 1125300L / result; // 1023*1100mV osztva 1.1 értéke AVCC-re vetítve// ha 1023-at mértél, akkor AVCC 1100 mV
// ha 256-ot mértél, akkor AVCC ~4400 mV
return result; }
Itt van fent a kód, sajnos fejből nem vágom ennyire a regisztereket, ezért csak egy régi kódomból tudtam kipuskázni, de lehetséges.
Ahol megismerkedtem ezzel, ott Attiny45-öt táplálok direktben 18650-ről a gyerek egyik csillagprojektorában. Eredetileg elemmel ment és nem tudott magától kikapcsolni. Akksira váltottam, viszont azzal mire észreveszem a merülést a fényerőn, addigra kinyírtam volna a cellát. Szóval van benne egy szimulált "merülés" effekt, ami leveszi a LED-ek fényerejét, amikor a cella már közeledik a 3V-hoz.
[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
nagyúr
válasz razorbenke92 #19347 üzenetére
Mindig tanul az ember
-
ekkold
Topikgazda
válasz razorbenke92 #19347 üzenetére
Amúgy szerepel a 18650-es akksik adatlapján, hogy meddig lehet kisütni, károsodás nélkül?
Pl. fehér lehet üzemeltetek 18650-es celláról ami kb 3V-ig tudja kisütni, utána meredeken csökken a fényerő. Eddig úgy gondoltam, hogy ez így rendben is van - vagy mégsem?
Új hozzászólás Aktív témák
- Napelem
- A Gigabyte is visszaveszi alaplapjainak alapértelmezett tuningját
- Épített vízhűtés (nem kompakt) topic
- Milyen nyomtatót vegyek?
- Rendkívül ütőképesnek tűnik az újragondolt Apple tv
- Kupon kunyeráló
- Suzuki topik
- Bittorrent topik
- Sweet.tv - internetes TV
- Microsoft Office és Office 365 topic
- További aktív témák...
- Dell Latitude E7450 Full i7-5600U, 16GB DDR3, 512GB SSD, FHD IPS, Nvidia, HUN Vil.Bill. Új
- Dell Latitude 7310 i7-10610U, 16GB DDR4, 512GB NVMe, FHD IPS Privacy, HUN Vil.Bill, NBD, Új Állapot
- Dell Latitude 7310 2in1 Alu i7-10810U, 16GB DDR4, 512GB NVMe, FHD IPS Touch, HUN Vil.Bill.
- Dell Latitude 7420 Aluminium i5-1145G7, 16GB DDR4, 512GB NVMe, FHD IPS Touch, HUN Vil.Bill, NBD
- Dell Latitude 5421 i7-11850H, 32GB DDR4, 1TB NVMe, FHD IPS, HUN Vil.Bill. Új Állapot, NBD