Hirdetés
- Synology NAS
- Milyen NAS-t vegyek?
- Otthoni hálózat és internet megosztás
- Crypto Trade
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Mikrotik routerek
- AliExpress tapasztalatok
- Xiaomi AX3600 WiFi 6 AIoT Router
- Mesterséges intelligencia topik
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
-
IT café
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
-
vargalex
félisten
-
vargalex
félisten
válasz its_grandpa #19695 üzenetére
Ott a beillesztett képen az Egyéni lehetőség... Oda azt adsz meg, amit akarsz, nincs megkötés az értékére.
Az nf_conntrack_max nem a kliensek, hanem az egyidejű kapcsolatok maximális számát határozza meg. Ha pl. torrentezel (bármelyik kliensen), akkor egyetlen kliens elvihet több 100, vagy több 1000 kapcsolatot is. Nálam ez fel van húzva:root@AX3200:~# cat /etc/sysctl.d/30-nf-conntrack-max.conf
net.netfilter.nf_conntrack_max=65535
Memóriával nincs gond, ehhez bőven elég a 256 MB:
259 kapcsolattal:
root@AX3200:~# cat /proc/net/nf_conntrack | wc -l
259
root@AX3200:~# free
total used free shared buff/cache available
Mem: 233328 44108 160416 452 28804 150040
Swap: 0 0 0
1227 kapcsolattal:
root@AX3200:~# cat /proc/net/nf_conntrack | wc -l
1227
root@AX3200:~# free
total used free shared buff/cache available
Mem: 233328 44584 159952 452 28792 149568
Swap: 0 0 0
#19690 Aryes: A .0 végű nem egy valós IP cím (azaz az általad említett 192.168.2.0), mivel 1-254-ig mehet. A 255 pedig a broadcast IP egy 255.255.255.0 (vagy másként /24-es) hálózat esetén, azaz ott az sem valós IP. Ezért írtam, hogy 192.168.2.2-192.168.2.254-ig bármit adhatsz (a 192.168.2.1 a router, azt azért nem).
[ Szerkesztve ]
Alex
-
nagyúr
válasz its_grandpa #19695 üzenetére
Hát ha nem is egyszerre 255, de ha minden eszköznek fix ip címet adsz, ahogy én teszem, előbb-utóbb el tud az fogyni, főleg, ha sok IoT eszközöd van.
-
its_grandpa
tag
válasz vargalex #19681 üzenetére
OK, de te nem e-világi eszközöket használsz mint általában mi
Ránéztem most az openwrt-s routeremre.
Nem lehet szabadon subnet-et állítani, 255.255.255.0 vagy 255.255.0.0 lehet.
Ránéztem a forrásra git-en - net.netfilter.nf_conntrack_max=16384 .Editálhatom a sysctl.conf-ot net.netfilter.nf_conntrack_max=25000-re de úgyse fogja bírni memóriával és nem is tudok beszerezni 25000 klienst.
Otthoni környezetben nem tartom igazi limitnek a 255 max klienst. -
nagyúr
-
nagyúr
válasz vargalex #19687 üzenetére
Az ESP eszközeid nem akkor kapják a 192.168.4.1-et, ha ők AP-ként és DHCP szerverként működnek és te rájuk csatlakozol
De, tényleg, de hülye vagyok
egyébként nem egyszerűbb a PC-den 192.168.2.0/24-ből beállítani egy statikus IP-t
Az a baj, hogy ezt a mondatot nem értem. a 192.168.2.0 után mi az a 24? De, valószínűleg ez lesz a megoldás, majd ha megértettem.
-
vargalex
félisten
Az ESP eszközeid nem akkor kapják a 192.168.4.1-et, ha ők AP-ként és DHCP szerverként működnek és te rájuk csatlakozol, így kapsz tőlük egy IP-t a 192.168.4.1/24-ből?
Elvileg működhet a netmask átírás, de egyébként nem egyszerűbb a PC-den 192.168.2.0/24-ből beállítani egy statikus IP-t, közvetlenül csatlakozni vezetékkel az N14U-ra és átállítani a LAN IP-jét egy saját hálózatodban lévőre (nem használtra)? Gondolom repeater módban kikapcsolja a DHCP szervert... Majd visszarakhatod a PC-det DHCP-re.
Ezért szeretem az OpenWrt-t. Ott ilyen esetben én a második router LAN interface-jának azt mondom, hogy DHCP-n kérjen magának IP-t (és gateway-t, DNS-t). Nem kell kézzel beállítani semmit, látszik az első router DHCP táblájában.
[ Szerkesztve ]
Alex
-
vargalex
félisten
válasz Janos250 #19682 üzenetére
Ahogy láthatod, a két esetben teljesen más a broadcast IP és a prefix is (amiről én beszéltem):
root@AX3200:~# ipcalc.sh 192.168.50.1 255.255.50.0
IP=192.168.50.1
NETMASK=255.255.50.0
BROADCAST=192.168.255.255
NETWORK=192.168.50.0
PREFIX=19
root@AX3200:~# ipcalc.sh 192.168.50.1 255.255.255.0
IP=192.168.50.1
NETMASK=255.255.255.0
BROADCAST=192.168.50.255
NETWORK=192.168.50.0
PREFIX=24
Tehát az első esetben az első 19 bit egyezése esetén már olyan pl. a 192.168.32.1 cél IP esetén sem fog átmenni a forgalom a gateway-on (hiszen az első 19 bit egyezik), pedig az lehet akár egy másik háló a gateway mögött...
[ Szerkesztve ]
Alex
-
nagyúr
válasz Janos250 #19682 üzenetére
Srácok, baromira off téma, de az előzőekhez kapcsolódik és most eszembe jutott megkérdezni, mert látom ti eléggé vágjátok ezt a kérdést. Láma kérdés, de sajnos ez a téma nálam nagy fehér folt. A régi routeremet (Asus n14u) beállítottam repeater módba, és saját ip címnek a 192.168.2.1-et találtam neki adni. Azóta képtelen vagyok elérni a router beállítások menüjét, közvetlen lan kapcsolaton se, se a wan, se a lan portokon, ráadásul wifin sem lehet rá kapcsolódni valami okból, viszont a vezetékkel rádugott eszköz kap netet rajta keresztül. Sőt, a másik routerre (Asus ac57u) belépve azt se látom, hogy fel van rá csatlakozva.
Jól sejtem, hogy ha az alap routeren átírom a subnet mask-ot 255.255.0.0-ra, akkor a másik routert el fogom tudni érni a 192.167.2.1 címen? Nem szeretném resetelni, mert amúgy egy csomó beállítás van benne (pl. mac címek a mac szűrés miatt). De ha ez így van, hogy emiatt nem tudom elérni, akkor mégis miért tudom elérni az ESP eszközeimet, amik meg alapból a 192.168.4.1 címet kapják?[ Szerkesztve ]
-
Janos250
őstag
válasz vargalex #19681 üzenetére
Offba teszem, mert hosszú lett. Amit feltétlenül jegyezzen meg mindenki, ha ezt elolvassa: kizárólag a saját hálód adatai alapján állítsd be a címeket!
"A subnetben a 0 nem véd ki semmit"
De! Kivéd.
Tételezzük fel, hogy megjött kettő darab vezetékes IP kamerád a kici óccóktól.
Ha szerencséd van, és vagy a rajta lévő címkéról, vagy a netről megtalálod, hogy az egyik IP címe mondjuk 192.168.0.10, a másik meg mondjuk 192.168.1.4.
akkor, ha a routered maskja 255.255.255.0, akkor az vagy a 192.168.1. ..., vagy a 192.168.0. ... tartományt látja, egyszerre mindkettőt nem. Tehát csak az egyik kamerát tudod kezelni, ahhoz, hogy a másikhoz is hozzáférj, át kell állítanod a tartományt a routereden.
Viszont, ha a mask harmadik száma 0, ahogy a példában írtam is, akkor mindkettőt látja, nem kell semmit állítanod a routeren.
Természetesen nem teszünk közzé olyan programot, ahol a user beállíthat pl. 50-et harmadik számként, akkor sem ha véletlenül úgy is működik.
"Utóbbi esetben lesznek olyan IP-k amik eléréséhez az eszközöd nem szeretne a gataway-on keresztül menni."
Természetesen marhaság ilyen maskot használni, de ha valakinek olyan hibbant ötlete támad, mert most látott hálót először, hogy 50-et ad meg, akkor számoljunk egy kicsit. Ha így fejben jól számolom, az 0x32, azaz 0011 00010, és ugyanez igaz az IP-re is. Ha mondjuk a másik IP-d 192.168.50.100, akkor ha a két IP-t maszkorbálod a maszkkal, akkor bizony megegyezik, vagyis nyugodtan belekürtölhetsz a drótba, hogy "hé, fiúk, kié ez az IP, küldje el a MAC címét, mert okosságokat akarok neki küldeni." Ha a keresett IP harmadikja, olyan, hogy nem egyeznek meg, akkor elküldi a 192.168.50.1-re. Persze lehet olyan IP is, amire megegyezik az 50-ben lévő nullák miatt, és akkor vakarhatja a fejét, hogy mit akart ez az ember, aki így szervezte meg a hálót.
Persze, aki annyira ért hozzá, hogy 50-et ad meg mask harmadikként, az egyébként is könnyen bajba kerülhet, mert nem mindenütt a tartomány legalja a gateway, eléggé általános a fordítottja is, hogy a tartomány legtetejét használjuk kijáratnak a világ felé.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
vargalex
félisten
válasz its_grandpa #19678 üzenetére
Pedig normális routereken (vagy inkább firmware-okban) olyan alhálózati maszkot használhatsz, amit csak akarsz:
Miért kellene a 255-höz ragaszkodni? Ez csak egy általános megszokás... De használhatok én itthon 172.16.0.0/16, vagy 10.0.0.0/8-as hálót is. Semmi nem akadályoz meg benne. És ahogy egyszer több okos eszköz van, lassan kinövi az ember a 254 eszközt (routerrel együtt).
#19679 Janos250: A subnetben a 0 nem véd ki semmit, a kolléga által is említett 50-es tartomány esetén a 255.255.50.0 subnet != 255.255.255.0-val... Utóbbi esetben lesznek olyan IP-k amik eléréséhez az eszközöd nem szeretne a gataway-on keresztül menni.
[ Szerkesztve ]
Alex
-
ViZion
félisten
válasz Janos250 #19679 üzenetére
Azok az SW-k a röhejesek, ahol ezt kéri kitölteni, de nem enged mást beírni...
Másik kedvencem -pl. android telefonoknál is-, hogy halványan ki van töltve, OK-t nyomok, de nem jó, gépeljem be...Hold on, trying to give a fuck... Nope, not Happening • Powered by Linux • "Az élet olyan sz@r, szerencsére a felén már túl vagyok" Al Bundy ¤¤¤ Hirdetéseim: https://hardverapro.hu/aprok/hirdeto/vizion/index.html
-
Janos250
őstag
válasz its_grandpa #19678 üzenetére
Köszi, teljesen igaz, de már nem tudom állítani.
Valóban a routereken a mask harmadik számát általában nem lehet állítani, de ha lehetne, akkor is normális esetben a 255 a logikus, bár én azokon a routereimen, amin lehet állítani, 0-t állítottam be, célszerűségi okokból. De - így első ránézésre, különösebb átgondolás nélkül - úgy tűnik, hogy "véletlenül" 50-el is működne, bár elég idétlen alhálózati szegmensek jönnének ki.
Mellesleg járt már a kezemben olyan router is, ahol az IP harmadik száma egy teljesen idétlen szám volt, de a 0 azt is kivédi.IPAddress subnet(255, 255, IPharmadikSzama, 0)
helyett természetesenIPAddress subnet(255, 255, 255, 0) az általában jó,
de, ha az illető TUDJA, HOGY MIT CSINÁL (!!!!!!), válasszon olyat, ami neki jó.Köszi mégegyszer!
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
its_grandpa
tag
válasz Janos250 #19675 üzenetére
Az
IPharmadikSzama
-val szerintem gond lesz (legyen 50).
Olyat IP-t lehet állítani a routeren, hogy 192.168.50.30 de olyan subnet-et hogy 255.255.50.0 nemigen.
Egy CIDR kalkulátor sokat segít [link]
A subnet otthoni környezetben legyen 255.255.255.0 , ez 255 kliens, vélhetően nem is tudnak többet a router-ek. -
nagyúr
válasz ReFleXx #19676 üzenetére
Igen, cellux-szal.
Ha egy fokkal igényesebb megoldás kell, akkor húzd vissza az egyik vezetéket a lyukból, és vezesd végig az akku mellett, alul, a tartó sarkában (simán elfér a kerek akksi mellett), tágítsd ki a lyukat a másik vezeték mellett, és fűzd ki ott, vagy fúrj neki egy lyukat mellette. Így egy picit hosszabb is lesz a vezeték. -
Janos250
őstag
Ismét előkerült egy fűtésszabályozási dolog ESP32-vel.
Mivel a jómúltkor megtanítottatok a range slider használatára, átvariáltam egy kicsit, hogy demónak (talán) alkalmas legyen, és felteszem ide. Nem Githubra, vagy egyébre, mert a változók neveit átírtam magyarra. Miért szeretem a kezdőknek szánt demót így csinálni? Azért, mert ha magyar az azonosító, azonnal tudja első rápillantásra is, aki a kezébe veszi, hogy azt a nevet szabadon adhatjuk neki.
Jobbat írni szabad!!!!!
Kicsit hosszú, de - mivel szöveg - talán nem terheli nagyon a memóriát.# define IPharmadikSzama 0 // router fuggo
# define IPnegyedikSzama 30 // olyat, ami nem utkozik massal
#include <string>
#include <WiFi.h>
using namespace std;
// PWM minta leddel
const int ledPin = 2;
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8 ;
const char* ssid = "*********";
const char* password = "*********";
IPAddress ip(192, 168, IPharmadikSzama, IPnegyedikSzama);
IPAddress dns(192, 168, IPharmadikSzama, 1);
IPAddress gateway(192, 168, IPharmadikSzama, 1);
IPAddress subnet(255, 255, IPharmadikSzama, 0);
IPAddress primaryDNS(8, 8, 8, 8); //optional
IPAddress secondaryDNS(8, 8, 4, 4); //optional
char inputCode ;
WiFiServer myServer(80);
uint8_t futesSzazalek ;
const char httpHeaderNull[] PROGMEM = R"=====(
HTTP/1.1 200 OK
Connection: close
)=====";
const char httpHeader[] PROGMEM = R"=====(
HTTP/1.1 200 OK
Content-type:text/html
Connection: close
)=====";
char htmlHeader[] PROGMEM = R"=====(
<!DOCTYPE html>
<html lang = hu >
<head>
<meta charset="UTF-8">
<title>Minta csuszkára</title>
<style>
.futesContainer {
text-align: center;
}
</style>
</head>
)=====";
char body[] PROGMEM = R"=====(
<body>
<div class="futesContainer">
fűtés százalék: <span id="FutesSzazalek"></span>
<br>
<input type="range"
id="FutesSlider"
min="1" max="99" value="50"
oninput="FutesSzazalek.innerText = this.value"
onchange="servernekElkuld('F',this.value)"
>
</div>
<script>
/*megallas utan az ertek kuldese a szervernek: */
servernekElkuld= function(keszulekKod,mitKuldErtek) {
var futesXML = new XMLHttpRequest();
futesXML.open("GET", keszulekKod+"="+mitKuldErtek, true);
futesXML.send();
}
/*kezdoertek kiiras: */
document.getElementById("FutesSzazalek").innerHTML = document.getElementById("FutesSlider").value;
</script>
</body></html>
)=====";
void setup(void) {
Serial.begin(115200);
delay(2000);
WiFi.begin(ssid, password);
if(!WiFi.config(ip, gateway, subnet, dns, secondaryDNS)) {
Serial.println("STA Failed to configure");
}
Serial.print("Connecting to ");
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Print local IP address and start web server
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());// this will display the Ip address of the Pi which should be entered into your browser
myServer.begin();
// PWM minta leddel
ledcSetup(ledChannel, freq, resolution);
ledcAttachPin(ledPin, ledChannel);
Serial.println("setup lefutott");
} ; // end setup
void loop(void) {
string aktualisSor = "";
char elsoSor[50];
uint16_t karakterszam = 0 ;
uint16_t sorokSzama = 0 ;
unsigned long elozoIdoMilliSec= 0;
const long timeoutIdoMilliSec = 1000; //in milliseconds (example: 2000ms = 2s)
IPAddress tavoliIP ; // = uint8_t tavoliIP[4]
WiFiClient myClient = myServer.available(); // Listen for incoming clients
if (myClient) {
tavoliIP = myClient.remoteIP() ;
// printf("tavoli IP: %d.%d.%d.%d\n",tavoliIP[0],
// tavoliIP[1],tavoliIP[2],tavoliIP[3]);
elozoIdoMilliSec= millis();
aktualisSor = "";
// printf ("aktualisSor1 = %s\n",aktualisSor.c_str());
while (!myClient.available()){
if ( (millis()- elozoIdoMilliSec) > 100 ) {
tavoliIP = myClient.remoteIP() ;
Serial.println(tavoliIP) ;
myClient.flush() ;
myClient.stop() ;
printf ("megszakitva\n");
return;
} ; // if ( (millis()- elozoIdo) > 100 )
} ; // while (!myClient.available())
while (myClient.connected()
&& ( (millis() - elozoIdoMilliSec) <= timeoutIdoMilliSec) ) {
if (myClient.available()) {
karakterszam++ ;
char c = myClient.read();
// Serial.print(c);
aktualisSor += c;
if (c == '\n') {
if (aktualisSor.length() == 0) {
break;
printf (" ures sor \n");
}
else {
sorokSzama++ ;
if ( sorokSzama == 1){
aktualisSor.copy (elsoSor, aktualisSor.length(), 0);
elsoSor[aktualisSor.length()] = 0 ;
};
aktualisSor = "" ;
} ; // end else (if(c == '\n'))
} ; //end if (c == '\n')
} ; // if (myClient.available())
} ; // while (myClient.connected()
inputCode = elsoSor[5];
switch (inputCode) {
case ' ':
printf("IP: %d.%d.%d.%d bejelentkezett, vagy frissített\n",tavoliIP[0],
tavoliIP[1],tavoliIP[2],tavoliIP[3]);
myClient.println(httpHeader);
myClient.println(htmlHeader);
myClient.println(body);
break;
case 'F':
char futesSzazalekChar[2] ;
futesSzazalekChar[0] = elsoSor[7];
futesSzazalekChar[1] = elsoSor[8];
futesSzazalekChar[2] = 0; // terminator
futesSzazalek = stoi(futesSzazalekChar);
myClient.println(httpHeaderNull);
printf("kuldo IP: %d.%d.%d.%d\n",tavoliIP[0],
tavoliIP[1],tavoliIP[2],tavoliIP[3]);
printf (" F=%d\n",futesSzazalek);
// PWM minta leddel
futesszabalyozasMinta () ;
break;
default:
printf (" ismeretlen jott, valami hiba van\n");
break;
}; // end switch (inputCode)
myClient.flush();
myClient.stop();
while (myClient.available()){
delay(1) ;
}; // while (myClient.available())
} ; // if (myClient)
delay(50);
} ; // end loop
void futesszabalyozasMinta (){
// PWM minta leddel
ledcWrite(ledChannel, futesSzazalek/100.0*255);
} ;
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
op9
aktív tag
Köszi!
Hát nekem csak tényleg pár dolog kellett ehhez a projekthez, nem sűrűn csinálok ilyesmit, szóval nem éri meg ilyeneket rendelnem, de kereséshez nagyon jó lesz nekem az oldal.A kérdésre a válasz, hogy miért nem NPN bipolárist vettem:
Először a boardra szerelt buzzer vezetett meg, ahol S8550-est használtak, így azt gondoltam, hogy jó lesz az nekem. Majd miután kiderült, hogy 3.3V-tal nem zár teljesen, hanem 1.X V-on még nyekeregtek a buzzerek, ezért utána olvastam, és azt láttam, hogy érdemesebb lenne nekem MOSFET-et használni, mert azzal is megoldható ez a kapcsolgatás, és csak váltásoknál fogyaszt valamennyit, a másik meg folyamatosan (amíg összezár). A cuccom akkuról működik, ezért jobb, ha nem fogyaszt annyit. De a MOSFET-tel együtt vettem egy BC337-est is, ha mégsem lenne jó nekem a MOSFET, de még 3.3V-on is van 100mA-em, és az 50 meg bőven alatta van, így nem akarom már piszkálni.How Bad Do You Want It?
-
ReFleXx
addikt
kaphato olyan 18650 Lithium akku tarto amelyiknel egy oldalon hozzak ki a + - vezeteket?
2020-as dakota közmondás: "Intel a csórók AMD-je"
-
And
veterán
Ja, én a mouser-nél néztem, elég jó parametrikus keresőjük van. Közvetlenül is lehet tőlük rendelni, de létezik hazai képviseletük (sajnos üzletük nem), ami kis tételeket is beszerez. De kis darabszámban, egyéb egzotikus alkatrészek nélkül tényleg nem annyira nyerő onnan hozatni.
Amúgy én is feltenném PHM kolléga korábbi kérdését: miért nem jó ilyen célra NPN bipolárt használni? 'Nyitófeszültségben' verhetetlen (valójában áramvezérelt eszköz), bőven 1 mA alatti vezérlő- (bázis-) árammal képes kihajtani egy 50 mA áramigényű terhelést, és akkora kollektoráramnál 200 mV alatti (szaturációs) feszültség maradhat rajta nyitott állapotban. Szinte bármely normális kisjelű típus megteszi, akár a BC182 is. -
op9
aktív tag
Áá, értem, köszi a felvilágosítást!
Akkor tényleg az arduino-s felhasználása jobb, mert ott 5V-ot kap, és azzal már maximálisan ki lehet használni a képességeit.
Sajna a TN0106-t nem találtam se a hestore, hqelektronika, kontel-nél, de a BSS138 van mindegyik helyen. Hol lehetne azt még beszerezni? Bár a BSS138 is jónak tűnik, ha arra is lehet vezetékeket forrasztani, még sohasem próbáltam.How Bad Do You Want It?
-
op9
aktív tag
válasz razorbenke92 #19657 üzenetére
Köszi szépen a választ!
Ebben a pdf-ben vannak feszültségek is megjelölve a színeknél.
A piros feszültsége 2.0-2.2, akkor ezért lehet, hogy a 5m-en a feszültség esés miatt kezd bepirulni?
Amúgy itt neki a mérései szerint 0.06W / 5V = 0.012A-t fogyasztott egy pixel egyik színe, és pont 3-szorosát, amikor mind a 3 világított.
150 pixel egy színnel 0.06 * 150 = 9W helyett 8.6W, tehát alig kevesebbet, mint kellett volna, de mind a 3 színnél már 0.18 * 150 = 27 helyett csak 13.65.
De gondolom, h ha betáplálta volna még párszor, akkor megközelítette volna a 27-et. Szóval az a WS2812B meg úgy néz ki, hogy nem csökkenti a másik színeket vmi védelem érdekében. Lehet, h jobban van elvezetve a hő, és azért úgy programozták a mikrokontrollert?How Bad Do You Want It?
-
nagyúr
válasz razorbenke92 #19661 üzenetére
Na, akkor mégiscsak van benne valamiféle step-down
-
-
őstag
Az újabb verzió (2812B) kettős PWM-et használ. Az első fok az output driverek bemenő feszültségét csökkenti, így értek el jelentősen kisebb hőtermelést a chipen belül az előző verzióhoz képest. A blokkdiagramjuk persze teljesen titkos, de ha lehet hinni a marketing-kommunikációnak, akkor bizony nem sima stabkockákkal tömték meg.
Egyszerűen ellenőrizhető egyébként: 3.3V-ról és 5V-ról is táplálható a szalag, pár LED esetén már mérhető az áram csökkenése.ViZion: Azért neveztem közhiedelemnek, mert maga a gyártó sosem állított ilyet. Sőt a Pololu pl. egyenesen 50mA-t ír a datasheetjeibe pixelenként. A WorldSemi pl. sosem nyilatkozott arról, hogy maga a belső áramkör milyen referencia értékekkel dolgozik. Lehet, hogy a ledek benne 20mA-el mennek névlegesen, de ők alulhajtják gyárilag a közös tokozás miatt. A biztonsági tényező persze attól nem árt, csak imhol az ékes példája, amikor valaki az urban legend alapján üzemi értékek helyett abs.max értékekkel tervez. Aztán amikor elkészül, szomorúan látja, hogy alig 50%-ban használja ki a forrását.
Mások számára a kondi fáradós, nekem farad-os...
-
And
veterán
"Azt hittem, h itt a gate-source threshold voltage-et elég néznem, és a MAX érték (3V), amikor már teljesen nyit."
A küszöbfeszültség egy adott, elég alacsony drain-áramra vonatkozik (ami itt 1 mA). Ennél sokkal érdekesebb, hogy a 'normál' terhelésekhez / csatornaáramokhoz mekkora nyitófeszültség szükséges, mert lássuk be, 1 mA az édeskevés, bármely MCU kimeneti portja ennél önmagában is minimum egy nagyságrenddel nagyobb terhelhetőségű. Releváns adat az 5. oldalon látható 5-ös ábra görbeserege: itt látható, hogy 3V-os Ugs mellett még 100 mA-t sem tudunk kivenni az eszközből, a névleges DC-maximum 200 mA-hez pedig közel 4V-os Ugs kell. Hasonló a transzfer karakterisztikáról is leolvasható (6. oldal, 6-os ábra). Mellette a 7-es ábrán látható a 'nyitott' csatorna ellenállása (Rds_on) a nyitófeszültség függvényében, ezen is feltűnő, hogy alacsony Ugs-értéknél a D-S között sokkal nagyobb ellenállás marad a normális nyitófeszültségekhez képest.
A BSS138 például már 2V-os Ugs-nél képes közel 200 mA-es drain-áramot adni, jóval kisebb csatornaellenállás mellett. Igaz, ez csak SMD-tokban létezik. A 2N7000-rel megegyező tokozásban (TO-92) hasonló logic level típus pl. a TN0106. -
nagyúr
válasz razorbenke92 #19657 üzenetére
Tehát amennyiben csak a piros színt hajtod maxon, akkor 5V-on akár 60%-a is lehet a mért áram. (5Vx12mA ≈ 2.8Vx20mA + veszteségek)
Kivéve, hogy 5V-on is 20mA lesz az áramfelvétele (vagy több, ha nincs áramkorlát, és akkor kiég). Amit leírtál, csak abban az esetben lenne igaz, ha step-down modul adná a tápot. De kizártnak tartom, hogy abban az icipici kontrollerben lenne ilyesmi.
[ Szerkesztve ]
-
ViZion
félisten
válasz razorbenke92 #19657 üzenetére
" innen ered a közhiedelem, hogy LED-enként 20mA"
Ez nem közhiedelem, hanem ez az ajánlott érték, amire a tápot méretezni kell. Ennyi plusszal nem lehet baj. Igen, az utolsó mondatoddal egyetértek, az tény.
De táp méretezésnél nem csak a ledek miatt ajánlott a 20 mA-val kalkulálni: sok tápegységnél a megadott A érték (lehet) fake...Hold on, trying to give a fuck... Nope, not Happening • Powered by Linux • "Az élet olyan sz@r, szerencsére a felén már túl vagyok" Al Bundy ¤¤¤ Hirdetéseim: https://hardverapro.hu/aprok/hirdeto/vizion/index.html
-
őstag
Ha jól látom, a videóban 5V-on mér áramfelvételt.
A WorldSemi egyébként a datasheetben nem ír áramfelvételt. Csak felsorolja, hogy mely színeket milyen LED-ek adnak a tokozásban.
A piros LED datasheetje itt van. Ebben olvasható, hogy az üzemi árama valóban 20mA (gyanítom a többi LED-nek is ennyi, innen ered a közhiedelem, hogy LED-enként 20mA), viszont ilyenkor a hajtófeszültség akár 2.8V is lehet a piros LED esetén.Tehát amennyiben csak a piros színt hajtod maxon, akkor 5V-on akár 60%-a is lehet a mért áram. (5Vx12mA ≈ 2.8Vx20mA + veszteségek)
Ugyanez tovább árnyalódik a többi LED-el, és azok varianciájával, a chip-die melegedésével ha mind mennek, stb.
Az urban legend 60mA egy WS2812-re tehát inkább amolyan absolute-maximum ratingnek tekinthető, mintsem üzemi áramigénynek.Mások számára a kondi fáradós, nekem farad-os...
-
op9
aktív tag
Köszi a választ!
Sajnos nem vagyok azon a szinten, hogy megértsem.
Nagyobb feszültséggel kellene a gate-et piszkálnom?
Azt hittem, h itt a gate-source threshold voltage-et elég néznem, és a MAX érték (3V), amikor már teljesen nyit.Ö ezzel egy 0.2A-es ventit mozgat (arduino mondjuk nem 3.3V-ot, hanem 5V-ot ad ki), ami gondolom az induláskor sokkal magasabb.
Nekem 2db buzzer van rákötve ami összesen 50mA-t vesz fel.Melyik mosfet lenne sokkal jobb ehhez a 3.3V-os limitre?
How Bad Do You Want It?
-
op9
aktív tag
válasz Tankblock #19652 üzenetére
Adafruit Neopixel-t használom, simán a setPixelColor(n, red, green, blue); -ral 255-re állítom a kívánt led színét.
Van ennek a library-nek egy setBrightness-e is, és megnéztem, h mennyit fogyaszt setPixelColor(n, 128, 128, 128), valamint setBrightness(128) esetén, és ugyanaz jött ki, meg ahogy nézem a kódot, a brightness paraméter egyszerűen csak az RGB értékadáskor módosítja az értékeket, más logikát nem látok, amibe beleszólna.How Bad Do You Want It?
-
And
veterán
(A 2N7000-es egy eleve nem túl nagy áramú (max. 200 mA DC) mosfet, amelynél a 3,3V-os nyitó- (Ugs-) feszültség már igencsak necces. Ekkora Ugs-nél a 'nyitott' csatorna ellenállása is meglehetősen nagyra adódik, az adatlapon már nincs is feltüntetve 4V-os érték alatt. Néhányszor 10 mA-es draináramhoz még elmegy ekkora nyitófesszel is, de azért eléggé határeset, ennél nem nehéz sokkal jobb paraméterekkel rendelkező típust találni.)
-
op9
aktív tag
A problémám csak az, h ez a fényerőben is látszik. Úgy számoltam, hogy ennyi led-del egy 2.1A-es powerbank-kal tudom használni, és ha kell a fényerő, akkor maxra feltekerhetem.
És most látszik, hogy kellene a fényerő, de alig lesz világosabb, ha "fehéren" mind a három világít. Ha ezt tudom, akkor több led-et építettem volna be.Köszi a magyarázatot! Ez esetben legközelebb előbb tesztelgetek, és nem a specifikációra hagyatkozom.
How Bad Do You Want It?
-
-
nagyúr
Miért okoz problémát, ha valami kevesebbet fogyaszt, mint kellene?
Vagy az van, amit írsz, hogy gyártási szórás/különböző gyártók közti különbség, vagy a következő:
Ezekben a WS2812B LED-ekben egy gombostűhegynyi pici IC gondoskodik 3db LED vezérléséről. Mind 3 színnek más a nyitó feszültsége, ez 3 különböző előtét ellenállást igényelne, de ezt a chipen belül csak nagyon pontatlanul tudják megoldani, gyanítom valami más megoldást alkalmaznak az áramgenerátoros meghajtás érdekében. Szóval szerintem az van, hogy a piros meg a zöld LED miatt a kék nem kap annyi kakaót, mint ha csak egymagában világítana, és vagy emiatt, vagy mert a chip kompenzálja ezt a különbséget azzal, hogy visszaveszi a másik két színt az arányok megtartása érdekében. -
op9
aktív tag
Sziasztok,
Sikerült kipróbálnom a 2N7000-es MOSFET-et, és jelentem, h tökéletesen üzemel, teljesen nyit (vagy épp zár) 3.3V-on, szóval nyugodtan használja, akinek szüksége lenne rá.
Más:
Mindenhol azt olvastam, hogy a WS2812B-nek minden egyes színe 0.02A-t fogyaszt.
Nekem 30db led van, igaz, csak egy oldalról betáplálva, de a teljes hossz kb. 2m, és 0.5mm2 vastagságű kábelt használtam. A feszültség esés 0.2V a másik végén.
Ekkor a 30 * 0.02 = 0.6A helyett csak 0.4A-t vesz fel, és szinte bármelyik színt használom, akkor ekörül van az áramerősség. Ha hozzáadok még egy másik színt, akkor 1.2A helyett 0.75A lesz, és mind a három szín esetében 1.8A helyett 1.05A körül fogyaszt.Neki is hasonlóan kevesebbet fogyaszt, ha mind a 3 világít.
0.3+0.2+0.3 = 0.8A-nek kellene lenni, de csak 0.6 lesz.Ez mitől lehet?
Vagy csak egyszerűen ekkora különbségek lennének a LED strip-ek között?How Bad Do You Want It?
-
gordonfreemN
addikt
válasz Tankblock #19648 üzenetére
Köszönöm neked is, meg mindenkinek.
Köszi a leírást, megint kicsit közelebb kerültem ehhez az egészhez.
Mivel eléggé kezdő vagyok, talán célszerű az arduino-nál maradni, ezt hallom mindenhonnan. Első sorban ebben a világban jó lenne eligazodni. Azt szeretném elérni egyelőre, hogy tudjam mi az a library, mi hogy működik stb. Ehhez persze kell keresnem olyan feladatokat, amiket szivesen csinálok, ahol van motiváció mint itt, bár ez utóbbi mint kiderült nem célszerű.
Ezért úgy döntöttem, hallgatok az itteni tanácsokra és elengedem ezt a dolgot.Power LED egy elírás, bocsi. Nagyfényerejű LED.
¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
Tankblock
aktív tag
válasz gordonfreemN #19638 üzenetére
Szia
A kérdés hogy gyorsan portolható megoldást keresel, mert akkor célszerű maradni az Arduino világban így könnyebben tudsz a uC között váltani,
vagy adott uC családot szertenél megtanulni.avr/sleep.h regiszter szinten állítja be közvetlenül az Atmega (AVR család) sleep módba, hozzáteszem a megfelelő regiszterek írásával te is megírhatod, ennek a megoldásnak az lesz az előnye h hatékony kódod lesz (nem forgatod bele az overheadet amit az Arduino okoz), hátránya hogy hosszabb lesz a betanulási görbe.... nemc csak a sleep van ott :-)
Microchipnek van tutorial oldala is: [link]
Amit látsz mint Arduino az egy univerzális wrapperbe csomagolt kód ami elfedi a uC sajátosságainak a nagy részét.
Mint minden ilyen megoldás hatékonyságvesztéssel jár, cserébe gyorsabban tudod alkalmazni egy másik uC családon a megírt kódot. Nem beszélek azokról az esetekről amikor 2 könyvtár ugyanazt a hw erőforrást használná és összeakad, szóval a hw arhitectúra nem ismerete okozni fog hátrányt.Power led nem 1mA lesz inkább 10-20mA. Lehet venni cél LED ami megvalósítja amit szeretnél, vagy megépítheted egy 555 időzítőből is.....
Release the Beast....
-
nagyúr
válasz gordonfreemN #19645 üzenetére
A leírásod alapján teljesen felesleges az alvó módot erőltetni. Egy mcu fogyasztása mérési hibahatáron belül van (a tévémben például a standby áramkörben van egy mcu abból a célból, hogy az IR szenzor jelére felébressze a tévét). Alvó móddal csak akkor van értelme foglalkozni, ha elemes/akkus táplálással szeretnéd használni a cuccot.
Ha egyszer mégis szükség lenne ilyen pulzáló effektre, és altatni is szeretnéd, a delay(30); helyére kellene tenni egy alvást, 30ms-re, időzítve. Esetleg csökkenteni a lépések számát, növelni a lépések közt az időt úgy, hogy az élvezeti értéke ne csökkenjen.[ Szerkesztve ]
-
gordonfreemN
addikt
3: mar elfelejtettem mit akartam 3.nak ez jó volt.
Köszönöm a szakmai tanácsot, akkor átgondolom ezt.
Egyébként egy ilyen hálózati táplálású készüléknél kikapcskor el szokták tenni az mcu-t alvóba?
Erősítők, előerősítők, akármik? Ez most előerősítő lesz csak azért emeltem ki azt. Szóval mi a szokás, mert akkor abba az irányba mennék.¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
dew28
aktív tag
válasz gordonfreemN #19643 üzenetére
Ha ragaszkodsz ahhoz, hogy lemenjen alvoba az mcu, akkor nem lesz fade-ed, mivel az pwm vezerelt, az mcu-bol.
3 opciod van:
1: epitesz kulso aramkort ami amig tapot kap folyamatosan pulzal egy led-et az arduinotol fuggetlenul. (letezik onmagaban villogo LED is, nem fade, de megoldas lehet)
2: arduinorol: felvillan a led, 8sec alvas, felkel az mcu, megint villan egyet a led, 8sec alvas, stbstb. heartbeat jellegu.
3: mar elfelejtettem mit akartam 3.nak[ Szerkesztve ]
-
gordonfreemN
addikt
válasz razorbenke92 #19642 üzenetére
Ilyesmire gondolok:
[egy folyamatos kihunyó-felerősödő állapot]Nem energiakritikus, egyrészt inkább tanulási cél, másrészt ha már van olyan funkció a készüléken, hogy kikapcs, akkor arra gondoltam, hogy a mikrovezérlőt is pihenni küldeném. De hálózati táplálású lesz a késülék, tehát akár jegelhetném is a dolgot, ha nincs rá ésszerű megoldás.
A villogó LED magas fényerejű LED lesz, talán eléri az 1mA-t.
Szóval akkor marad számomra vagy az órajelvisszavétel, vagy el kell engedni eztKöszönöm a tippeket!
¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
őstag
válasz gordonfreemN #19641 üzenetére
Ha egy folyamatos kihunyó-felerősödő állapotot szeretnél, akkor altatás helyett lehet célszerűbb csak simán lejjebb venned az órajelet. Ilyenkor a fade effekt delay nélkül (vagy jelentősen kisebb delayel) pöröghet.
Ha ilyen szívdobogás jellegűt szeretnél, amikor a két felderengés között hosszabb idő eltelik, akkor érdemes altatni is. Ilyenkor az alap fogyasztásod az effekt hossza / üres idő aránya javítja.
Ugyanakkor megkérdezném: Ennyire energiakritikus az alkalmazás? Csak azért, mert az 328p fogyasztása összemérhető egy villogó LED-ével.
- Ha nagyon energiakritikus, akkor gondold át a standby LED-et is
- Ha nem energiakritikus, nincs szükség valós altatásra, csak berakod egy állapotba, amiből bármelyik pinnel ki tudod léptetni, és amíg a kilépő feltételt várja, fadeli a ledet.Mások számára a kondi fáradós, nekem farad-os...
-
gordonfreemN
addikt
Természetesen így teszek, ezért meg is köszöntem a tippet!
A megoldás amit említesz... (és köszönöm!) ez azt jelentené, hogy lemegy a for ciklusban a led villogás mondjuk egyszer, majd belép powerdown módba és onnantól nincs villogás?A lenti példánál (#19639) gordonfreemN válasza dew28 (#19636) üzenetére írtam legalább egy butaságot: 8s-ig tartanám powerdown módban, ezzel az a baj, hogy addig kellene nyomogatni a button_p-t is. Inkább egy 2s-os powerdown-al lenne ez talán élhető.
[ Szerkesztve ]
¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
nagyúr
válasz gordonfreemN #19638 üzenetére
Nyugodtan tegyél be pár sor programot De hosszabb kódokat, log-okat pastebin-re vagy hasonló helyre szoktunk beszúrni és azt ide linkelni, mert praktikusabb.
A LED kezelést illetően az a baj, hogy az a loop többszöri futását igényelné, te viszont a loop közepén elaltatod a lapot. Megoldás: a kikapcsolás LED effektet egy for ciklusba tedd bele, a ciklus lejártával jöhet az altatás. -
gordonfreemN
addikt
Oké, egyébként is megáll, persze, csak ha a time argumentumban konkrét időt használok, akkor az idő leteltével feléled és a loop ismét lefut. Így innen ki lehet ugrasztani bármilyen bemenettel.
Például azt mondom, hogy ha vpower 0 a feltétele az if igaz ágába való belépésnek, akkor ott lefut 8 másodpercig a powerdown, majd abból kilép és megint lefut a loop. Ha közben én a button:p-t nyomva 1-re állítom a vpower változó értékét, akkor nem fog bemenni a powerdown módba.
Kérdés, hogy így nyerek vagy vesztek, mert az MCU így minden loop-kor fel kell éledjen, ez nem tudom mennyi energiával jár.
Ha forever-t használok akkor pedig csak akkor tér magához, ha az interrupt lábakon beérkezik a megszakítás, ellenkező esetben addig ott marad.¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
gordonfreemN
addikt
válasz Tankblock #19637 üzenetére
Szia,
Igazad van, nem írtam le elég részletesen mit is szeretnék.
Ezúton kibővítem a tudnivalókat:
A cél az volna, hogy a készülék kikapcsolásakor a power LED villogjon fade-elve (így jelezvén, hogy a készülék feszültség alatt áll) illetve menjen valami energiatakarék módba, mivel nincs használva a készülék.
a "valami energiatakarék mód" alatt azt értem, hogy az összes lehetséges blokk lekapcsolása. De szeretném ha a power LED villogna ebben az állapotban.
Ebbe az állapotba a button_p megnyomásakor menjen és abból azzal éledjen is fel. Ezt a vpower változóval lehetne megadni, amikor az értéke 0/LOW akkor energiatakarék módba kerül, amikor a vpower 1/HIGH akkor pedig feléled.
A gondom még ezzel, hogy az áramkör elkészült, miután kitaláltam ezt az energiatakarékosságot és a button_p a 8-as lábon van. Ezt PIN change funkcióval fel lehet használni interruptra, de olvasom, hogy ez lassú ezért például a debounce bizonytalanná teszi az állapotfelismerést.Nem tudom ez elég-e ahhoz, hogy érthető legyen mit is szeretnék. Bevallom annyi mindent találtam (még csak ismerkedek az arduinoval/mega328-al és a programozással), hogy teljes lett a káosz a fejemben és ez érződik is a hsz-eimen.
Én úgy vettem ki az eddig olvasottakból, hogy az avr/sleep.h-t a frodító elevel tartalmazza de sasjnos amíg nem értem miért van szükség mellette/helyette a LowPower könyvtárra addig az egész értelmezése is homályba vész. Persze meg lehet így is írni egy egyszerű kódot, csak nem túl optimálisan.A PIN change-hez is találtam egy könyvtárat de nem igazán akar leesni mire is jó ez nekem. Persze nem muszáj elmagyarázni, majd valahogy rájövök, eddig is azért megoldottam már néhány feladatot.
A kódomat valóban feltehetném a githubra, de ez egy programozásról szóló fórum ahol ez el kell férjen, nem 5000 karaktert szúrtam be, ezért nem lehet pálcát törni senki felett szerintem. Amúgy az ötletet köszi!
Köszönöm, hogy további jó hobbizást kívánsz, de nem jön át, hogy ezzel úgymond elküldesz innen vagy csak a jóindulat beszél belőled. Én utóbbira szavaszom azért elsőre
¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
Tankblock
aktív tag
válasz gordonfreemN #19635 üzenetére
Szia,
nem vagyunk gondolatolvasók (sajnos),
kérdésem az lenne, mi lenne a cél amit el szeretnél érni?Ha csak ideveted a gondolataid felét, nem lesz senki aki segíteni tud, mert mindenki csak találgatni fog. Egy problémára meg van több megoldás.
Küldtem DataSheetet linket abban benne van a ennek a uC a működése.A kódodat feltehetnéd Gitre is publicusan akkor meg tudjuk nézni azon a linken amit ide teszel, és nem kell a fórumot teletenni kóddal
További jó hobbyzást!
Release the Beast....
-
dew28
aktív tag
válasz gordonfreemN #19635 üzenetére
akkor a loop megáll ha sleep forever-t használok?
nem, nem amiatt all meg.
( Az ATmega328P sleep modjai, YES az ami bekapcsolva marad)[ Szerkesztve ]
-
gordonfreemN
addikt
Kezd valami kialakulni.
#include "LowPower.h"
const int powerled = 9;
int brightness = 0;
int fadeAmount = 10;
const int button_p = 2;
bool buttonstate_p;
bool lastbuttonstate_p;
byte vpower;
const int powerrelay = 13;
void setup() {
pinMode(powerled, OUTPUT);
pinMode(button_p, INPUT);
buttonstate_p = 1;
lastbuttonstate_p = 1;
pinMode(powerrelay, OUTPUT);
}
void wakeUp() {
// Just a handler for the pin interrupt.
}
void loop() {
if (vpower == 0) {
analogWrite(powerled, brightness);
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 250) {
fadeAmount = -fadeAmount;
}
delay(30);
if (brightness == 0) {
digitalWrite(powerled, 0);
}
}
if (vpower == 1) {analogWrite(powerled, 255);}
buttonstate_p = digitalRead(button_p); //gomb állapot kiolvasása
if (buttonstate_p != lastbuttonstate_p) //gombnyomás történt? Gomb állapota változott az előzőhöz képest?
{
delay(500); //ha történt változás az előző állapothot képest, várj 50ms-ot
if (buttonstate_p == 0) //ha a gomb nyomva, azaz bemenet értéke alacsony akkor
{
if (vpower < 1) { //ha vpower értéke kisebb mint egy
vpower++; //növelje vpower változó értékét eggyel
}
else { //ha vpower értéke egy vagy több
vpower = 0; //akkor legyen az értéke nulla
}
}
if (vpower == 0) {
digitalWrite(powerrelay, 0);
// Allow wake up pin to trigger interrupt on low.
attachInterrupt(0, wakeUp, LOW);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
// Disable external pin interrupt on wake up pin.
detachInterrupt(0);
// Do something here
}
if (vpower == 1) {digitalWrite(powerrelay, 1);}
}
lastbuttonstate_p = buttonstate_p;
}Na most itt egy olyan kérdésem lenne, hogy akkor a loop megáll ha sleep forever-t használok?
Csak mert a LED fade megállt.
A cél az volna, hogy a készülék kikapcsolásakor a power LED villogjon fade-elve (így jelezvén, hogy a készülék feszültség alatt áll) illetve menjen valami energiatakarék módba, mivel nincs használva a készülék.
Ez nem a teljes kód, csak egy részletet kihoztam belőle, a jelenlegi cél érdekében feleslegesnek éreztem az egészet ide vetni.¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
dew28
aktív tag
válasz gordonfreemN #19631 üzenetére
de azt a hibát adja az ellenőrzés, hogy
'wakeUp' was not declared in this scope
csak egy tipp, de esetleg nem deklaraltad a wakeUp rutint?void wakeUp() {
// Just a handler for the pin interrupt.
}
[ Szerkesztve ]
-
gordonfreemN
addikt
Jó, jogos.
Amúgy a feltett kérdésre tényleg nem tudni a választ vagy csak hagyjátok a kezdőt saját utakat járni?
Mert tényleg nem értem miért mi a különbség a lowpower.h és az avr/sleep.h közt.Próbálkozok egyébként:
#include "LowPower.h"
void setup() {
// put your setup code here, to run once:
}
void loop() {
{
// Allow wake up pin to trigger interrupt on low.
attachInterrupt(0, wakeUp, LOW);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
// Disable external pin interrupt on wake up pin.
detachInterrupt(0);
// Do something here
}
}
de azt a hibát adja az ellenőrzés, hogy'wakeUp' was not declared in this scope
¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
nagyúr
válasz gordonfreemN #19629 üzenetére
Nem akarlak kiábrándítani, de csupa idegen által megírt valamit töltesz fel amúgy is.
-
gordonfreemN
addikt
Köszönöm mindkettőtöknek a választ.
Akkor atmega328-nál eleve csak a lowpower.h és az avr/sleep.h játszik.
Ezek közt mi a különbség?
Ezt a lowpower.h-t nem tudja alapból a fordító, külön kell rákeresni neten és feltölteni rá.
Ez szokványos? Nekem fura, mert olyan érzésem van, mintha egy idegen által megírt valamit töltenék fel éshasználnék.[ Szerkesztve ]
¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
its_grandpa
tag
válasz bimbula53 #19619 üzenetére
>> Az összes netradio project a VS1053-ra épül..
Igaz (mint hardver).>> az Adafruit könyvtárat használja mint alap ..
Nem igaz, a Yoradio is másik lib-et használ.>> Itt is lehet használni a VS1003 -t gond nélkül.
Igaz, azért mert nem vizsgálja a VS.... chip ID-t.Akinek 1003-a van és nem módosítja az Adafruit lib-et, az nem fog hangot hallani.
Egyszerűen azért mert ez - return (v == 4); - mindig false lesz.>> Néztem az általad linkelt projektet is.
OK, akkor töltsd le, a tools könytárban találsz egy hw_test.ino-t és próbáld ki 1003-al.// VS1053 test
Serial.print(F("\r\n--> VS1053 GPIO test: "));
if (!musicPlayer.begin()) {
Serial.println(F("[ERROR] VS1053 not found."));
} else {
Serial.println(F("[OK] you should hear a beep"));
}
A garantált eredmény -> [ERROR] VS1053 not found. -
Tankblock
aktív tag
válasz gordonfreemN #19625 üzenetére
Szia,
próbálok segíteni..
"ArduinoLowPower.h" ill "LowPower.h" telepíteni kell Könyvtárkezelőből.
Mi a különbség? --> mások írták, saccra ugyanazt lehet elérni velük.
A végén AVR registereket írja át úgy hogy a PowerMode különbféle sleep állapotba kerüljön."Lehetséges 9-es pinről is feléleszteni energiatakarékos módból, vagy csak a dedikált interrupt 1-2 lábakon?" --> csak interrupt láb lehet ebből a Atmega328 nak 2 van....
"A loop az energiamegtakarításkor i folyamatosan fut, vagy ilyenkor csak az interrupt lábat figyeli és ha azon bejön a megszakítás akkor feléled?" nem fut, csak az interrupt vector változásakor éled fel uC és fut tovább a loop kódja.
ebben találod a Power Mode, Reset interrupt handlig leírását...
Release the Beast....
-
gordonfreemN
addikt
sziasztok!
Szeretnék egy minimális energiamegtakarítást elérni atmega328 MCU-val.
Olvasom, hogy van ez a sleep mode (
#include <avr/sleep.h>
) melyet alapból tartalmaz a mikrovezérlő.
Aztán van ez az (
#include "ArduinoLowPower.h"
) és van a (
#include "LowPower.h"
).
Ezek közt mi a különbség?
A lowPowerek külön könyvtárak és külön kell letölteni őket?
Ezeket a fordító könyvtárkezelőjében miért nem találom?Lehetséges 9-es pinről is feléleszteni energiatakarékos módból, vagy csak a dedikált interrupt 1-2 lábakon?
A loop az energiamegtakarításkor i folyamatosan fut, vagy ilyenkor csak az interrupt lábat figyeli és ha azon bejön a megszakítás akkor feléled?
Nagyon köszönöm ha tudsz segíteni ennek a megértésében,
¯\_(ツ)_/¯ ▁ ▂ ▃ ▅ ▆ ▇ Üdv, Andris.
-
ekkold
Topikgazda
válasz bimbula53 #19620 üzenetére
Szerintem próbáljuk meg! Nyitottam egy új témát, itt: [internet_radio_epitese_hardver_es_programozasa]
http://skory.gylcomp.hu/ http://www.skory.z-net.hu/ https://skori.hu/ https://skori.spacetechnology.net/
-
bimbula53
tag
ekkold topikgazdához fordulnék 1kérdéssel. Lenne rá igény a "netradio" vonal nyitására?
-
bimbula53
tag
válasz its_grandpa #19613 üzenetére
Az összes netradio project a VS1053-ra épül és az Adafruit könyvtárat használja mint alap.
Ez nem zárja ki, hogy a VS1003-at ne lehessen használni anélkül, hogy a lib-be keljen nyúlni..
A Yoradio az esp32 dev modulra épül. Minden más modulnál ismerni kell a lábkiosztást. Itt is lehet használni a VS1003 -t gond nélkül. Természetesen más fajta DAC -ot is lehet használni. Problémák adódhatnak, amire igyekeznek gyorsan reagálni. Sajnos magyar nyelvű forumja nincs. De persze minden megoldható. Néztem az általad linkelt projektet is. Korábban már találkoztam a névvel, csak nem sikerült rá lelnem próba erejéig. Ahogy néztem 4éve nem nyúltak hozzá. Ezek a projektek egyéni ízlés szerint íródtak sok sok csiribirivel. Sok közül lehet kiválasztani azt ami neki bejön. -
-
-
its_grandpa
tag
válasz bimbula53 #19601 üzenetére
Csak megnéztem a kódot, nem próbáltam ki.
Van egy Heltec ESP32-es modulom, amin rajta az oled is.
Természetesen saját lib-el lehet meghajtani, amihez át kellene írnom a fél Yoradiot.Ezt ki lehet próbálni "gyári" VS1053 lib-et használ [link] , de ...
Az Adafruit lib csak 1053-al működik, ahogy a #17857-ben írtam,kicsit bele kell nyúlni a 1003-használatához. Ez nálam az Adafruit_VS1053.cpp 123. sorában kezdődik, a 132. sort kell javítani
uint8_t v = Adafruit_VS1053::begin();
// return (v == 4); ez a 1053
return (v > 2); ez ha a chip verzió minimum VS1003 =3
-
ekkold
Topikgazda
Nem tudom a többi milyen, de..
nekem VS1053-as modulom van, az egyik ESP8266-al, a másik ESP32-vel, és mindkettőnek kifejezetten jó a hangminősége, erősítőre és rendes hangsugárzókra kapcsolva és meghallgatva is (tehát nem PC hangszóró kategóriájú cuccal).http://skory.gylcomp.hu/ http://www.skory.z-net.hu/ https://skori.hu/ https://skori.spacetechnology.net/
-
-
gya/352
tag
válasz its_grandpa #19599 üzenetére
Igen nekem is feltűnt, hogy a Yoradio-ban nics lehetőség a VS1003 használatára. Kicsit bíztam benne hogy talán használható lesz a VS1053 helyett, de így már látom hogy előrotdulhatnak problémák. Legfeljebb berendelek egy 1053-ast. Eredetileg is azt szerettem volna venni, de elnéztem a rendelésnél és úgy jött az 1003.
-
bimbula53
tag
válasz ekkold #19603 üzenetére
De igen, Sokáig nálam is üzemelt, kis testvére mai napig is használatban van. Csak a kíváncsiság hajtott tovább. 2apró dolog ami nem tetszett 1- a csv-bin konvertálás, kezdetben meg volt csak elveszett, a pótlása nehezen mentt. (Itt a nadim félére gondoltam) 2- lassan kapcsolódott a wifihez. Ha valaki azt kérdezné, hogy merném ajánlani, akkor igent mondanék. Mint említettem a kíváncsiság nagy úr. A Yoradio teljesen ráhuzható a karadio hardverre. Ez volt a legfőbb érv. Hardveresen nem kellett hozzá nyúlni, csak a szoftver lett cserélve. Szép, sokat tud, és a fejlesztése is pörög.
-
lanszelot
addikt
válasz Janos250 #19600 üzenetére
Nagyon szépen köszönöm mindenkinek a választ.
Igen, pont így gondolkodtam, ahogy írtad.
Ezért is írtam a solid state relay -t a kérdésbe.De úgy látom felejtős a project.
Jelenleg manuálisan szabályzom.
De szakkörön azt mondták: huuuu de olcsón meg lehet építeni a szabalyzót a nano-hoz. Vakartam is a fejem, hogy nem így emlékszem, mondom tuti valamit benéztem.
De nem. Árban mindegy hogy triak, vagy ssr mind £20 felé megy, és én max £5 szántam rá.
Mivel 1szer fogom használni az életben és bekerül a szekrény aljára.Van egy rakat cuccom az arduino -hoz, majd azokkal szórakozom azokra nem kell költeni.
-
bimbula53
tag
válasz its_grandpa #19599 üzenetére
És mi a végeredménye a leírtaknak? Ha már ismered a Yoradiot Mi a véleményed róla? Esetleg valami mást ajánlanál? Amihez kevés programozási tudás is elég.
Új hozzászólás Aktív témák
- Nintendo Switch OLED 19.0.1 Dual-Boot Cfw + 128GB MicroSD + Atmosphere 1.8.0, 3 hó garival!
- XBOX ONE S 1TB, dobozában, gyári tarozékaival és 6 hó garanciával, Bp-i üzletből!
- XBOX ONE X 1TB, makulátlan szép állapotban, 6 hó teljeskörű és 1 év SW garanciával Bp-i üzletből!!
- XBOX Series X, dobozában, gyári tartozékaival, 2025.06.28.-ig gyári garancia!! Bp-i üzletből eladó!
- GIGABYTE Nvidia Geforce GTX 1080 TI Aorus
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Axon Labs Kft.
Város: Budapest