- Bemutatkozott a Poco X7 és X7 Pro
- Yettel topik
- Magyarított Android alkalmazások
- Hónap végén érkezik a Xiaomi Band 10, ára is van
- iPhone topik
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Google Pixel topik
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
-
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
-
Janos250
őstag
válasz
Tomika86 #15694 üzenetére
Pl ennél:
https://www.banggood.com/ESP32-WiFi-+-bluetooth-Development-Board-Ultra-Low-Power-Consumption-Dual-Core-ESP-32-ESP-32S-Similar-ESP8266-Geekcreit-for-Arduino-products-that-work-with-official-Arduino-boards-p-1175488.html?cur_warehouse=CN&rmmds=search
ki sincs vezetve.
OFF: 8$-ért az új szabályok szerint is bejön, mert ebben már minden benne van (azaz szállítás, VÁM, ÁFA, vámkezelési díj) , azokat az áruház beléptetéskor kifizeti. -
Janos250
őstag
válasz
Tomika86 #15694 üzenetére
Csak úgy hirtelen ránézésre:
Micro SD 1/2 tippem szerint biztosan rossz, mert azokat a lábakat a belső flash használja.
Én micro SD-re a VSPI-t használom. (mert csak)
https://randomnerdtutorials.com/esp32-microsd-card-arduino/
"GPIO6 to GPIO11 are connected to the intagrated SPI flash integrated on ESP-WROOM-32"
A lapok nagy részén ki sincs vezetve lábhoz. -
Janos250
őstag
válasz
Tankblock #15687 üzenetére
Igazad van, visszanéztem, tényleg csak C-t írt a srác. Én - lévén Arduino topic - automatikusan C++ -t gondoltam. Bár sose tudom, hogy az UNO, Mega, stb hol tart a C++ verziókban. Az ESP32-re tudom, hogy az a 2011-nél. Ha valaki tudja, leírhatná, hogy okosabb legyek! :-)
-
ekkold
Topikgazda
Nem tudom mennyire extra, vagy értékes az a program, de lehet, hogy a hardver ismeretében viszonylag könnyen megírható egy másik program az adott funkciókra. A programozó lábak levágása a prociról némi hekkeléssel még kezelhető: pl. kis köszörülés a tokon, ahol a láb befelé folytatódik, és vékony szál odaforrasztása... Némelyik kollégámnak ez sima rutinfeladat lenne
A lényeg: a védelemnek csak olyan szintűnek kell lennie, ami a program értékének megfelelő. Tehát elegendő ha a védelem megkerülése több munka, mint másik programot írni, és akkor nem fog senki sem foglalkozni a feltörésével - egyszerűen azért, mert nem éri meg.
Amit Géza írt lentebb, általában az is elegendő, és teljesen jó megoldás. -
JóGéza
aktív tag
válasz
tonermagus #15685 üzenetére
Miért nem tiltod le a kiolvasást? AVR-nél is van rá lehetőség, úgy tudom.
-
válasz
tonermagus #15685 üzenetére
Elég drasztikus megoldás, de ha nem használod az SPI lábakat, és hozzáférhető helyen van a μC, próbáld meg levágni az IC-ről. Igaz, így már te sem tudsz rá kódot feltölteni, de valamit valamiért.
-
Tankblock
aktív tag
válasz
tonermagus #15685 üzenetére
Nyáktervhez reverze engineering kell...
Az szerintem nem védelem, max ha valami frankó bootloader megvégi a letöltéstől, vgay használd a Lock byte ot....[link] Remélem ez segít
Esetenként kötheted még a letöltő debugger ID jához....
-
ekkold
Topikgazda
válasz
tonermagus #15685 üzenetére
Elvileg minden procinak van egyedi azonosítója. Ha ezt kiolvassa a programod, akkor simán megteheted, hogy csak azon az egy procin fusson a kód - és akkor hiába másolja le bárki is... Ezt továbbgondolva pl. az egyik projektemben úgy kezeltem ezt a problémakört, hogy az egyik menüpontban a program kiír egy egyedi azonosítót, amihez meg kell adni egy kulcsot. Ha a megfelelő egyedi kulcsot nem adják meg, akkor a program csak DEMO verzióként működik, indulás előtt 15 másodpercet várakozik, és csak 15 percig működik utána leáll. Ez a kipróbáláshoz bőven elég, és ha valaki tartósan akarja használni, akkor egy jelképes összeg ellenében elküldöm a számára szükséges egyedi kulcsot. Innentől viszont a program .bin formátumban szabadon letölthető a weblapomról, bárki rátöltheti a saját processzorára, kipróbálhatja, és ha tetszik akkor egy jelképes összegért cserébe teljes verzióként is használhatja.
Amúgy mi az a kütyü amit be fogsz mutatni?
A forráskódot amúgy nem tudják lementeni, csak a gépi kódot bináris formában. Nem lehetetlen ebből forráskódot készíteni, de azért elég sok munka ahhoz, hogy ne érje meg - azaz lehet, hogy egyszerűbb, gyorsabb új programot írni az eszközre.
-
tonermagus
aktív tag
Sziasztok!
A hétvégén megyek bemutatni a kütyümet egy cégnek.
Kérik, hogy egy minta darabot hagyjak is ott nekik.
Elég paranoiás vagyok, és már tárgyaltunk régebben itt a programkód védelemről. Attól tartok hogy otthagyom a próbadarabot, ők egy AvrDude-al letöltik a programot, a nyáktervet és eszközöket már saját maguk is el tudják készíteni, feltöltik egy AVR-re a kódomat és már mehet is a sorozatgyártás... Vagy ez nem ilyen egyszerű?
Szóval a védelem érdekében arra gondoltam, hogy a kódba beleteszem azt, hogy soros porton 10 másodpercenként kiadja a nevemet. Szerintetek ez érhet valamit? Az AvrDude-al lementett forráskódot tudják módosítani és visszatölteni?
Vagy mit tehetek a kódom védelme érdekében?
Egyáltalán hogy van ez az Arduinos forráskódos dolog. Mintha olyanról is olvastam, hogy ha nyílt libraraykat használok akkor nem védhetem le a kódom? -
vargalex
félisten
válasz
Tomika86 #15682 üzenetére
Utóbbira írtam, hogy mivel a változó értéke egy másik változótól függ, így az ne változó, hanem függvény legyen. Most csak telefonról vagyok, de nagyon csúnyán:
unsigned long PeriodBetweenPulses() {
return ZeroTimeout+1000;
}
Majd, ahol használod, ott a
PeriodBetweenPulses
-t lecseréledPeriodBetweenPulses(
)
-re. -
Tomika86
senior tag
válasz
Tankblock #15680 üzenetére
Szia!
Az igazából nem fontos, ha ezeket megtudom oldani az elég:
const byte PulsesPerRevolution = 2;
const unsigned long ZeroTimeout = 100000;Itt csak ez miatt vagyok gondban, hogy itt is szerepel, vagy ez nem gond?
volatile unsigned long PeriodBetweenPulses = ZeroTimeout+1000;
Köszönöm a segítségeket!
-
Tankblock
aktív tag
válasz
Tomika86 #15678 üzenetére
Szia,
Ha a példádat felpakolod a Git, .... ahol meg tudod osztani egyértelműen könnyebb lenne a helyzet....
Kérdés hogyan szeretnéd változtatni azokat az értékket a kijelzőn....
az biztos, hogy a
numReadings
változót nem szerencsés változtatni ha így marad a kód.
minden olyan helyen ahol tömb van ezzel a mérettel plunsigned long readings[numReadings];
ott át kell méretezni vele egyidőben a tömböt is.... Ha ez sima C akkor ugye calloc malloc páros ha jól rémlik..... De az futásidőben szép feladvány lesz, inkább egy láncolt lista mint ezt csinálni..... Még azzal is jobban jársz ha max méretű tömböt hozol létre és csaknumReadings
nyi adatot préselsz bele, majd nem engeded max -1 fölé a számolót..... -
Tomika86
senior tag
válasz
vargalex #15675 üzenetére
const byte PulsesPerRevolution = 2;
const unsigned long ZeroTimeout = 100000; // For high response time, a good value would be 100000.
// For reading very low RPM, a good value would be 300000.
// Calibration for smoothing RPM:
const byte numReadings = 2; // Number of samples for smoothing. The higher, the more smoothing, but it's going to
// react slower to changes. 1 = no smoothing. Default: 2.
/////////////
// Variables:
/////////////
volatile unsigned long LastTimeWeMeasured; // Stores the last time we measured a pulse so we can calculate the period.
volatile unsigned long PeriodBetweenPulses = ZeroTimeout+1000; // Stores the period between pulses in microseconds.
// It has a big number so it doesn't start with 0 which would be interpreted as a high frequency.
volatile unsigned long PeriodAverage = ZeroTimeout+1000; // Stores the period between pulses in microseconds in total, if we are taking multiple pulses.
// It has a big number so it doesn't start with 0 which would be interpreted as a high frequency.
unsigned long FrequencyRaw; // Calculated frequency, based on the period. This has a lot of extra decimals without the decimal point.
unsigned long FrequencyReal; // Frequency without decimals.
unsigned long RPM; // Raw RPM without any processing.
unsigned int PulseCounter = 1; // Counts the amount of pulse readings we took so we can average multiple pulses before calculating the period.
unsigned long PeriodSum; // Stores the summation of all the periods to do the average.
unsigned long LastTimeCycleMeasure = LastTimeWeMeasured;
unsigned long CurrentMicros = micros();
unsigned int AmountOfReadings = 1;
unsigned int ZeroDebouncingExtra; // Stores the extra value added to the ZeroTimeout to debounce it.
// The ZeroTimeout needs debouncing so when the value is close to the threshold it
// doesn't jump from 0 to the value. This extra value changes the threshold a little
// when we show a 0.
// Variables for smoothing tachometer:
unsigned long readings[numReadings]; // The input.
unsigned long readIndex; // The index of the current reading.
unsigned long total; // The running total.
unsigned long average; // The RPM value after applying the smoothing.Annyit szeretnék, hogy ami itt 3db const van, azokat az értékeket, kijelzőn keresztül szeretném módosítani. De nem működik.
Persze a const elhagyva, és itt van a Zerotimeoutnál a +1000 -
tonermagus
aktív tag
Sziasztok!
Kicsit szeretném ésszerűsíteni a NYÁK lapomat.
Hála nektek azt már tudom hogy az Arduino Mega 2560 Mini-t meghajthatom 6,4V-ról VIN lábon keresztül. Így akár ki is eshetne a DC-DC stepdown, ami eddig a 6,4V-ot 5V-ra alakította. De még mindig itt van a Neo M8N GPS module, amit szintén meg kellene hogy tápláljak. Alapból 3,3V-ról menne, de elbír az 5V-ról is a VIN lába (jelenleg is 5V-on üzemel). Szerintetek ezt megtehetem az Arduino 5V-os, esetleg a 3,3V-os lábáról? Nem fog szétsülni az Arduino kimenete? Mert ha ez működik, akkor nincs akadálya annak, hogy kivegyem a DC-DC-t a kapcsolásból...Hacsak feszültség stabilizátorként nincs értelme bent hagyni
Ha biztonságosan használható Arduinoról, akkor az 5V-ot, vagy a 3,3V-os kimenetet ajánljátok? Melyikkel melegszik kevésbé? -
stopperos
senior tag
válasz
Undoroid #15672 üzenetére
Akkor előröl is elkezdve.
4db érzékelő: legegyszerűbb az, ha 4 analóg bemenetet definiálsz, és a loop első sorait lemásolod újra és újra az adott termisztornak megfelelő kalibrációs paraméterekkel. A változókat pedig ennek megfelelően elnevezed: [a0, a1, ..., resistor0, resistor1, ..., tempC1, ... ].
Én ezt a részt kiraknám egy-egy függvénybe: float readTermistor1( int pin) { ..., return tempC; } formában.menü funkció: Erre létrehoznék egy "state" globális volatile változót, majd ezt egy switch/case struktúrában vizsgálva váltanék a 4 lcd kiíró kód közül. A vizsgálatra egy maradékos osztást használnék (state % 4). A state változó módosítására pedig létre kell hozni egy-egy függvényt amiben csak annyi van, hogy state++ vagy state--. Például void up() { state++; }
léptetés: Nano és Uno esetén két külső megszakításra van lehetőség. A 2-es és 3-as digitális pin-re kötött egy-egy gombbal tudod majd ezeket előhívni. A linkelt hivatkozásban van példa, csak a meghívott függvényt cseréld ki. -
vargalex
félisten
-
válasz
Undoroid #15672 üzenetére
Szia!
Először is, üdv a topikban!
Hátulról kezdem:
Elegendő lenne ezekhez a feladatokhoz egy NANO vagy inkább egy UNO kellene hozzá?
A két lapon ugyanaz a μC található (atmega328p), viszont a nano boardon kettővel több analóg bemenet van kialakítva, mint az UNO-n (8db vs. 6db), tehát a nano ebből a szempontból (is) jobb. Tekintve, hogy az i²c az analóg pinek közül kettőt elvesz (az A4 és A5 lábak látják el az i²c SCL és SDA funkcióját is), a nano-n 6, az UNO-n pedig 4 analóg bemenetet tudsz i²c-vel egyidejűleg használni. És ezzel válaszoltam is a másik kérdésedre. -
-
Undoroid
őstag
Sziasztok!
Nagyon kezdő vagyok ebben a témában, amit Ti gyakorlatiasabban vágtok...ezért is kérem a segítségeteket!
Szóval nemrég hozzájutottam egy kissé hiányos -kezdő- mikrovezérlő csomaghoz és az egyik példa lehetővé tette, hogy egy Nano-val, egy 2x16-os LCD kijelzővel és egy termisztorral össze lehet dobni egy egyszerű digitális hőmérőt! Ezzel a programmal szépen végezte a dolgát:
"#include <LiquidCrystal.h>
int tim = 50; //the value of delay time
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(4, 6, 10, 11, 12, 13);
int thermistorPin = 0; // thermistor connected to analog pin 3
void setup()
{
lcd.begin(16, 2); // set up the LCD's number of columns and rows:
lcd.clear(); //Clears the LCD screen and positions the cursor in the upper-left corner
}
void loop()
{
float a = analogRead(thermistorPin);
//the calculating formula of temperature
float resistor = (1023.0*10000)/a-10000;
float tempC = (3435.0/(log(resistor/10000)+(3435.0/(273.15+25)))) - 273.15;
lcd.setCursor(0, 0); // set the cursor to column 0, line 0
lcd.print(" adeept ");// Print a message of "Temp: "to the LCD.
lcd.setCursor(0, 1); // set the cursor to column 0, line 0
lcd.print(" Temp: ");// Print a message of "Temp: "to the LCD.
lcd.print(tempC);// Print a centigrade temperature to the LCD.
lcd.print(" C "); // Print the unit of the centigrade temperature to the LCD.
delay(500);
"
Ezzel a példával egy érzékelő tud működni! A kérdésem a következő lenne:
Megoldható-e az, hogy a jelenlegi programsor módosításával több (4db) érzékelőt is le tudjon kezelni egyszerre és kijelezni az LCD-n? Akár úgy, hogy enkóderrel vagy navigáló gombokkal tovább lehetne léptetni az aktuális érzékelő kijelzését? (Egyszerre csak egy érték szerepelne, de a kavarodás elkerülése érdekében el lehetne nevezni az aktuális szenzort) A hab a tortán az lenne, ha minden szenzorhoz be lehetne állítani egy riasztási értéket és hiszterézist is és a hozzárendelt kimeneten ez megjelenne, amit FET-el vagy relékimenettel fel lehetne használni. Elegendő lenne ezekhez a feladatokhoz egy NANO vagy inkább egy UNO kellene hozzá? Az LCD -az egyszerűség kedvéért- és a felhasználható kimenetek spórolása miatt l2C kivitelű lenne!Előre is köszönöm az iránymutatást és a segítségeteket!
-
válasz
Tomika86 #15669 üzenetére
Alapvetően nem szerencsés globális változót használni, mert azt bárhonnan eléred, ezért nem tudhatod hol módosult. Ez főleg hibakereséskor fontos. Nem tiltja meg senki, és ha a te kódod úgy sokkal egyszerűbb, akkor hajrá. Van valami konkrét kód is, amit meg tudsz mutatni?
-
válasz
Tomika86 #15666 üzenetére
Ha módosítani akarod, akkor az nem konstans.
Működik persze, a C-ben az a jó, hogy engedi, hogy lábon lődd magad
Viccet félre téve, nyilván nem fér bele egy int egy byte-ba, csak ha nem használod ki az int ranget, ha még tudod, hogy belefér nem kell castolni. Arra vigyázz, hogy az int alapból signed.
Lokális szebb, de néha kell a globális.
-
Tomika86
senior tag
Sziasztok!
Lenne 3 kérdésem általánosan C nyelvről.
1. Ha változók vannak deklarálva és a masodikhoz az elsőnek is köze van akkor ezt hogy tudom megcsinálni, hogy programon belül értéket adjak?
Const int elso_val = 10;
Const int masodik_val = elso_val + 1000;Az elso_val érteket viszont módosítani akarom loop ciklusban. Konstans nélkül.
2. Van byte típusú változó, ebbe ha simán belerakok egy int értéket az működik?
Vagy pedig így?
Byte valtozo_2
valzozo_2 = (byte) valtozo_33. Globális változó deklarálas vagy programon belüli a jobb? Ha csak akkor van használva, akkor felesleges globálisan deklarálni?
Észrevehető a különbség?Köszönöm
-
Hátha valaki szerencsével jár! DFRobot giveaway (FB reklám dobta fel)
-
vegyszer
addikt
Sziasztok!
Olyat lehet csinálni ESP32 szintén, hogy mind Bluetooth, mind wifi csatornán keresztül próbáljon csatlakozni, de ha az egyik sikeres, akkor a másikat hanyagolja? Esetleg prioritást adni neki, hogy akkor keressen WiFi-t, hogyha mondjuk 20s alatt se all fel a Bluetooth kapcsolat, és akkor arra is azonos időt szánjon, majd vissza az elejére.
-
stopperos
senior tag
válasz
Dißnäëß #15657 üzenetére
A belépő szint 90-100 eFt körül van a digitális oszcilloszkópok esetén. Ha csak számítógépes, akkor fele ennyibe kerül.
Viszont ha 1 MHz alatt maradsz akkor arduino alapra építhetsz oszcilloszkópot, kell külső A/D konverter 12-bit-es, pár műveleti erősítő a feszültségtartományok váltására.
-
Janos46
tag
Sziasztok.
Egy BH1750-et próbálgatok változó sikerrel. Betöltöm, elindul rendesen és méri a fényerőt. Egy idő után leáll és:
[BH1750] ERROR: received NACK on transmit of address
Error initialising BH1750
BH1750 Test begin
[BH1750] Device is not configured!
Újra indítva is marad ez az állapot. Azonban ha másnap ismét elindítom mér, de újra kezdi az egészet. Gondoltam hátha melegszik, habár nem érezni, de azért beraktam a hűtőbe, próbáltam sztaniollal közös potenciára hozni, de semmi nem számít.
Mi lehet az oka ennek és az alábbinak is?
Ha bármilyen programot betöltök, akkor rövid idő után az alábbit írja ki:
Érvénytelen könyvtár található ebben: C:\Users\picur\Documents\Arduino\libraries\arduino-esp32-master: nem található fejfájl (.h) itt: C:\Users\picur\Documents\Arduino\libraries\arduino-esp32-master
Ettől függetlenül működnek a programok. Az érdekesség az, hogy ha csak az üres könyvtár van, akkor is ezt írja ki. -
Dißnäëß
nagyúr
válasz
stopperos #15656 üzenetére
Ha már oszcilloszkóp: fesz. szintek mérésére, hasonló egyszerûbb célokra valami belépô, de használható, jó kis oszcilloszkóp ajánlásod volna esetleg ?
Vmiféle plotter funkció van ezeken ? Pl. X idôablakon belülre felrajzolja a fesz. szintet. így láthatom, hogyan viselkedik egy táp, amikor a terhelés rákerül (vagy le róla).
Apám vmi PC-s alapúval mókol, de ritkán találkozunk, nem tudom, azok milyenek. Nekem amúgy szívem mélyén valamiért a sajât kijelzôsök jobban tetszenek.
-
stopperos
senior tag
válasz
tonermagus #15655 üzenetére
Sajnos erre így nehéz válaszolni, hogy miért indult újra. Rá kellene mérni, hogy a feszültségek hogyan változnak nagyobb áramfelvételnél. Multiméter és oszcilloszkóp.
Pár kondenzátor amúgy sokat segít, pl rögtön a bemenetre tennék egy 220uF-470uF@25V elektrolit kondenzátort. A 6,4V kimenetre egy kondenzátort ebben a paramétertérben: 100uF-220uF@10-25V.
Ha mégis kellene, akkor a+5V előállítására valami "LM2940CT-5.0" -t használnék. Ezeknél kell előtte-utána kondenzátor, legalább akkora, mint ami az adatlapján van. A low-dropout miatt a 6,4V elég lesz neki, és 1A-ig lehet terhelni. Arra kell vigyázni, hogy a feszültségesést elfűti, tehát egy kisebb borda kell rá.
A NEO M8N nem +3,0-3,3V-ről megy? (Én egy ilyen adatlapot találtam.)
-
tonermagus
aktív tag
válasz
stopperos #15653 üzenetére
Maga a környezet úgy néz ki hogy ~18V-on meg van táplálva egy motorvezérlő ESC és egy fesszabályzó ami előállítja a 6,4V-ot. Arról megy egy másik fesszabályzó ami a 6,4-ből 5V-ot csinál. Ez táplálja meg az Arduinot, és arról a körről menne még egy GPS modul és pár egyéb elektronika is. A GPS modul ha jól emlékszem többet vesz fel mint 100mA, így nem szeretném Arduinoról 5V lábról hajtani, illetve már meg is van hozzá a nyákterv, nem is szükséges hogy arról menjen. Ez egyébként úgy néz ki hogy működik.
Próbáltam azt, hogy a ~18V-ot közvetlen leveszem és az lenne az 5V-os DC-DC stepdownnak a betápja (tehát kihagynám a 6,4V-os Stepdown-t) , de ha a motorvezérlő beindult és kövér gázt adtak, akkor az arduino mindig újraindult. Utólag lehet egy kondi elég lett volna, nem tudom, nem értek hozzá. Ez miért lehetett?
Tehát most az alábbi opciók vannak:
- kidobom az 5V-os DC-DC stepdownt, a 6,4V-ot megkapja az Arduino Mega Mini VIN-en, majd a NEO M8N GPS vevőt, illetve 2 db 3mm-es LED-et pedig az ARduino 5V-os portjain hajtom meg.
- megcsapolom közvetlenül a ~18V-ot, ebben az esetben marad az 5V DC-DC stepdown, viszont erről a körröl mennem minden elektronika, nem az arduino 5V pinjeiről. Viszont ebben az esetben meg kellene szüntetni hogy az arduino újrainduljon.
Egyébként a 18V-ot mindenképpen meg kell csapolnom, mert mérem a feszültséget. Jelenleg viszont nem a 18V-ot kötöm az 5V-os DC-DC-re, hanem a 6,4V-os fesszab kimenetét, így megszűnt az újraindulás hibája. -
válasz
tonermagus #15652 üzenetére
6.4V már simán elég a Vin/hordó csatlakozón a stabil működéshez (tesztelve), ebből ne csinálj gondot. A lapon lévő regulátor főleg a kínai lapok esetében nem annyira terhelhető, nem tudom mit szeretnél rá kötni, de mondjuk 1-2 sg90 szervónál többet nem nagyon bír külön hűtés nélkül. Én egy uno lapon 2 nagyobb szervóval egyszer már megsütöttem a regulátort, szerencsére a μC nem ment tönkre, ma is működik.
-
stopperos
senior tag
válasz
tonermagus #15652 üzenetére
Szia, az arduino 12V-ról is meghajtható és a +5V lábáról meg tudod hajtani a többi eszközt a nyákon.
Lesz az arduinon egy 3+1 lábú állandó feszültséget előállító áramköri elem. Uno esetén a DC henger dugó bemenete mellett keresd. Nano esetén pedig alul lesz és a Vin lábat kell táplálni hozzá.
A többi áramköri elemet pedig tudod az arduino +5V lábáról hajtani, és 100 mA-t biztos le tudsz róla venni még a kínai változatok esetén is. Lehet szükséged lesz egy-egy 100 uF-os kondenzátorra a Vin-GND és a +5V-GND lábak közé hogy stabil legyen a feszültség amit a +5V-on előállít.
Az usb-n nem fog visszatáplálni, amiatt ne aggódj. -
tonermagus
aktív tag
Sziasztok!
Nem igazán értek az elektrotechnikához, és sajnos az a helyzet áll fent, hogy 6,4V-ból kellene csinálnom 5V-5,1V-ot.
Annyira azért képben vagyok, hogy az ehhez használt DC-DC stepdownokkal (Pl: LM2596) ez megoldható, csak ebben az esetben nincs meg a tanácsolt 2V differencia. Ennek ellenére kipróbáltam és működik az arduino a DC-DC-n keresztül 6,4 V-ról meghajtva, de ez mennyire stabil illetve ajánlott szerintetek. Illetve mi lehet a jobb megoldás rá? Esetlegesen saját DC-DC építése sem probléma, ha hagyományos (NEM smd) alkatrészekkel kivitelezhető.
Az arduino VIN-je ebben az esetben nem játszik mert szintén 7V-ot ír, illetve vannak még más eszközök a nyákon ami szintén 5V-ról megy, így kell a feszültség átalakítás -
Dißnäëß
nagyúr
Sziasztok,
Z-Wave valaki ?
A napokban futottam bele.
-
_q
addikt
válasz
Janos250 #15634 üzenetére
De ha így van, akkor az ADC esetén se okozna gondot. Valójában meg még is valahol írják, hogy ha használom valamelyik ADC-t, akkor valamit nem fogok tudni használni. Ez tudom a levegőbe beszélés, de sajnos nem emlékszek mit mivel nem lehet együtt használni, viszont arra igen, hogy az ADC-nél valami hasonló van. Lehet a többi kommunikációt nem érinti.
-
ecaddsell
aktív tag
válasz
Dißnäëß #15631 üzenetére
Ahol elrontottad az az, hogy a Graetz is ejt, ha nem Schottky nem is keveset ugye normál dióda 0.6-0.7Vx2 (tehát másfél volt környékén). Ha ez van akkor még tudod menteni a helyzetet Schottky diódákkal (0.2-0.3x2 azaz fél volt környékén fog ejteni a másfél helyett).
Ez is necces persze, nagyobb terhelésnél. -
Janos250
őstag
válasz
Tomika86 #15637 üzenetére
A Tx0, Rx0 maradjon a helyén, használd a Tx2, Rx2-t: GPIO17, GPIO16 !
SPI:
A CS (GPIO5), a MOSI (GPIO23), A MISO (GPIO19), a CLK (GPIO18) kellenek.
Ezeket a cardreader ugyanolyan nevű lábaihoz kell kötni.I2C:
SCL (GPIO22), SDA (GPIO21)CAN:
Még nem használtam, bár tervben van, a transceiver már megvan hozzá, de pihen, így én csak azt tudom, amit írnak:
http://www.iotsharing.com/2017/09/how-to-use-arduino-esp32-can-interface.htmlHa úgy gondolod, hogy segítség, átküldöm az egyik panelom kapcs. rajzát, ahol ezek be vannak kötve.
Javítás:
Nem is kell, hogy elküldjem, mert itt van:
https://prohardver.hu/tema/arduino/hsz_15436-15436.html -
Tomika86
senior tag
válasz
Janos250 #15634 üzenetére
Köszi a leírast. A 32lábas Vroom verziót néztem.
Uarton a Nextion kijelző lenne, melyik lábon legyen ha ne a TX0, RX0? Vagy mindegy?
Spi-n csak 1db sd kártya lenne.
I2C-n egyenlőre 1, de az címmel bővíthető, felhúzóellenállás itt is kell gondolom sda, scl vonalra.
2db megszakítás kell, de az is bárhova programozható ha jól tudom.
4db analóg bemenet, de akkor ez I2C lesz Ads1115
4db sima digit bemenet, optocsatolóval leválasztva.
4db sima digit kimenet, amiről beszéltetek FET, azzal kapcsolnám a külső 12Vot.Valamelyik tud CAN buszt is, az is jó lenne. De melyik az a verzió?
Köszönöm
-
Janos250
őstag
válasz
Dißnäëß #15631 üzenetére
Ez pl. ugyanúgy 60 W-os, 9 $-ért szállítással, pár napon belül hozza a postás, az új szabályok szerint is ÁFA mentesen, mert CZ.
https://www.banggood.com/Geekcreit-AC-100-240V-to-DC-12V-5A-60W-Switching-Power-Supply-Module-Driver-Adapter-LED-Strip-Light-p-1441620.html?cur_warehouse=CZ&rmmds=search
Hozzá szabályozható DC/DC konverter pl. 11$/10 db. azaz 1.1 $ darabja.
https://www.banggood.com/10Pcs-Mini-DC-Adjustable-Power-Supply-Buck-Module-Step-Down-Module-p-999753.html?cur_warehouse=CN&rmmds=search
Én pl. ezt használom, ez 48V, 500 (!) W, 24 $.
https://www.banggood.com/500W-Switching-Power-Supply-AC-110V-240V-Regulated-To-DC-48V-10_4A-LED-Power-Supply-Driver-Adapter-Security-Monitoring-Power-Supply-p-1589483.html?cur_warehouse=CZ&rmmds=search -
Janos250
őstag
válasz
Dißnäëß #15631 üzenetére
Én a trafót lecserélném (a régi toroid trafót egy készüléken le is cseréltem) valami egyéb tápra. 12V-os tápok a LED csíkok miatt elég jó áron kaphatók. Egyszerűbb esetben ezek jól használhatók, szükség esetén mehet utána 1-2 egyszerű, olcsó DC/DC konverter, amivel bármilyen feszültséget beállíthatsz. Én így használom.
Azért írom, hogy "egyszerűbb esetben", mert éppen nekem kellett egy készülékhez 48V, ezért én ehhez külön rendeltem tápot Alin.
Ott persze, már magasabb feszt is kibíró DC/DC átalakító kell, de az is kapható. -
Janos250
őstag
"nem üti-e egyik a másikat mert ugyan azon a belső áramkörön van és hiába van több helyre kivezetve, egyidejűleg nem lehet mindkettőt használni."
Nem. Mindnek külön, független belső hardvere van.
ESP32-n bármelyik eszköz (UART,SPI, I2C, stb) lába bármelyik lábra átdefiniálható, ez csak nanosec nagyságrendű lassulást jelent.
UART-ból van három.
Serial, Serial1, Serial2. Feltöltés, debug az elsőn (Serial) megy, az 1, és a 2 szabadon használható nem ütik egymást, de a Serial1 default lábait át kell címezni, mert azt memória kezelésre használja az ESP32. Jól használhatóak.
SPI-ből kettő hardware van (VSPI,HSPI), de akármelyikre rá lehet rakni egy csomó eszközt, csak akkor a chip selectet nem automatikusra kell állítani, mert akkor az mindig a D5 lesz, és összeakaszkodnak a készülékek. Minden eszközhöz el kell határozni egy CS lábat, és azt az eszköz megszólítása előtt aktiválni, majd deaktiválni. Én csak a VSPI-t használtam, de azt több eszközzel, azaz készülékenként külön CS lábbal.
Itt egy példa:uint16_t readVSPI_MAX6675(uint8_t chipSelect){
uint8_t Hbyte;
uint8_t Lbyte;
uint16_t readed16bit ;
SPI.beginTransaction(SPISettings(100000, MSBFIRST, SPI_MODE1)); // Set the settings to work with SPI bus
digitalWrite(chipSelect, LOW); // Select slave
Hbyte = SPI.transfer(0);
Lbyte = SPI.transfer(0);
digitalWrite(chipSelect, HIGH); // Release slave again
SPI.endTransaction();
readed16bit = ((uint16_t)Hbyte)<<8 ;
readed16bit = readed16bit + Lbyte;
return readed16bit >> 6 ;
} ; // end readVSPI_MAX6675Persze több bájtot is lehet egyszerre olvasni, de itt - már nem tudom miért - így oldottam meg.
SPI-nél vigyázni kell arra, hogy:
Ha több bájtot írsz/olvasol, akkor a CS-t nem lehet háborgatni amíg mindet be nem olvastad.
Ha a default CS-t használod, akkor - általában - nem lehet a bájtokat egyesével olvasni, mert a CS aktiválása ezt-azt indít a készüléken is, ezért default CS láb esetén a több bájt olvasó függvényeket kell használni.I2C-t még nem használtam, most fogom használni EEPROM kezelésre.
Mivel I2C-nél nem kell külön CS láb, ezért nem növeli a lábak számát, ha több I2C eszközt használsz, SPI-nél viszont igen, minden eszközhöz külön CS láb kell.
Ha nem használsz sok lábú párhuzamos adatátviteli eszközt, akkor azért eléggé iparkodnod kell, ha túl akarsz futni az ESP elérhető lábain, mert elég sok az.
Pontos ADC-re nem volt szükségem, így azt nem tudom."Nextion tx, rx kell uart.
Sd kártya spi
Giroskóp i2c
Vagy ugyanazokat használják lábon?"Nem. Külön lábakat használnak alapértelmezés szerint is. Ha SPI-n csak az SD kártyát használod, mehet a default D5 CS.
-
_q
addikt
válasz
Tomika86 #15632 üzenetére
Ha jól emlékszek akkor fel lehet fűzni is az i2c-re és spi-ra is több eszközt, csak mindig a megfelelőt kell megszólítani. Így elvileg nem lesz gond. Amire nem emlékszek az az, hogy ha pl használsz valamilyen kommunikációt, mondjuk i2c akkor működik-e vajon az uart is, vagy ha uartra kötöd a nextiont, akkor tudod-e közben debugolni arduino ide-vel. Lényeg amit akarok ezzel jelezni, hogy meg kell nézni, ha valamelyik lábat nem gpio-ként használod, hanem i2c, uart, spi stb, akkor nem üti-e egyik a másikat mert ugyan azon a belső áramkörön van és hiába van több helyre kivezetve, egyidejűleg nem lehet mindkettőt használni.
Az ADC-re emlékszek, hogy ott van ilyen kitétel, a többit meg kell nézni nem emlékszek teljesen már.
-
Dißnäëß
nagyúr
Kedves Urak, elektro szakik !
IT-s vagyok, nem villanyosmérnök. Tudnátok nekem kezdő hobbistaként egy egyszerű "képletet", támpontot ajánlani arra, hogy
- mekkora terhelés
- mennyivel csökkenti
- milyen stabilizátor esetén
- a stabilizátor és Graetz-híd előtt lévő, bemeneti AC-t ?Hogy életszerű legyek: rendeltem netről egy 60VA toroid trafót, mondván, 5V AC * 1.414 = ~7V DC, a stabilizátornak pedig bőven ez alá esik az input tartománya. (Stabi és egyenirányító egyben).
Nos, megjöttek a motyók, trim potival beállítottam az 5V DC-t a kis áramkörön, dörzsölöm kezeimet nagy boldogan.
Kötöm rá a Pi1-et, valami élet van, de nem boot-ol. Pi4 - szintén nem boot-ol. Arduino Leonardo - tökéletes. Hinnye.
Rámérek terhelve az áramkört is, hát a Pi-k 4.3 illetve 4.1 V-ig is le-le szopják a feszt, miközben indulgatnak, azaz indulgatnának, és ingadozik a feszültség masszívan. Ó mondom de jóó....
Nézem a stab eszköz adatlapját, 1V dropout, hmm, akkor még mindig van 6V-om DC-n utána, elméletileg (?).. de a bemenetre eleve >=6.5V -ot ír, akkor miért hirdeti a hirdető ezt a teljes board-ot úgy, hogy Input voltage: 2.5 to 27 V AC ?
Ennek szerintem ezek alapján nem 2.5V AC az indulója, hanem jóval felette valszeg.
A célom az lett volna, hogy 2db Pi-t elvigyen, 1 Arduino-val a trafó + stabi kombó, de valszeg a Pi-k nagyobb áramfelvétele annyit ejt a feszen, hogy róluk le kell mondanom, HACSAK nem nézek valami kisebb kieg. trafót, ami 5V-ot felvisz mondjuk 8V-ra, és utána kötöm. Vagy amit egy ismerősöm mondott, hogy még vagy 10 plussz szekunder menetet a trafóra rátekerhetek, hát ezt nem akarom szétszedni nyilván... VAGY csak 3.3V-ra használom, de arra meg overkill mind a méret, mind a teljesítmény-bírás (van egy ESP-m, ahhoz jó lehet amúgy)..
Ha esetleg ezt a trafót máshol szeretném használni, milyen - új - trafót nézzek ide ? Van egy csöves erősítőből származó másik toroidom, két szekunderrel, az egyik 6.3V-os (fűtés), azzal etetve említett stabi áramkört, gyönyörűen boot-ol a két Pi és 5V DC betonstabil.
Ehhez az új trafóhoz kellene nekem valamiféle képlet, hogy a jövőben elkerülhessek ilyeneket. Tudom, hogy 6-7-8V körüli már tökjó lenne a mostani célra, de ha még többet akasztanék rá (és bírják a szekunderek), csak tudjam, hova eshet a fesz adott terhelésre, és mi fog történni nagyjából.
Szóval egy pár perc "fizikaórára" lenne szükségem.
A gyökkettős ökölszabály csak terheletlen AC-DC konverzió esetén műxik, így jó lenne tudnom, X AC-ből mennyi DC-t remélhetek, milyen terhelések esetén. Gondolom nem csak stabi, hanem dióda függő is (?)..
-
_q
addikt
válasz
Tomika86 #15629 üzenetére
Én ilyet használok: [link]
Lehet legközelebb már nextiont vennék, bár ez se rossz ha működik. Betekintési szöge fentről és oldalról jó, másik 2 irányból nem az igazi. Elsőt amit rendeltem egy idő után csíkozni kezdett ha melegszik. Másodikat használom azóta, szerencsére azzal nincs gond. Egyedül az ára zavar a nextionnak. Ha kevés a pin esetleg, akkor egy plusz IC-t kell beiktatni ami többszörözi a pineket, most nem ugrik be a neve.ADS1115-re ha jól emlékszek 4 analog bemenet köthető. AZ ESP32 lábai azért lehet esetleg kevés, mert az AD1115-nek kell pár láp az I2C kommunikációhoz, nextionnak is kell pár, szinten SD-hez is.
-
Tomika86
senior tag
Igen a 3,3V-ot értem a jelszinteken.
A digitális kimeneteket FET-el kapcsolom, a digitális bemeneteket optoval leválasztom. Ezek együtt a 10b-ot nem érik el.
Analóg bemenetet akkor az ADS1155 megoldja. Nextion kijelző soros portja tud 3,3V jelszintet is.
SD kártyát szeretnék rátenni, meg giroszkópot(vagy gyorsulásmérőt) majd. -
_q
addikt
válasz
Tomika86 #15627 üzenetére
Igen én is azt használom az időjárás állomásnál az aksi feszültség mérésére. Több, mint amire szükségem van, de mivel van hozzá minta kód és én is ezt találtam meg, ezért ezt választottam. Szerintem amihez találsz arduinos kódot az mind jó lehet.
Nekem az ADC az egyedüi hátrány. Ha valakinek sok pin kell akkor esetleg az még hátrány lehet. A jelszint alatt ha a 3.3V-ot érted az nekem például előny, többnyire ilyen alkatrészeket használtam, persze ez felhasználás függő.
A kíniai fejlesztői panelek egy részén megy az automatikus kód letöltés minden gomb megnyomása nélkül, másiknál meg csak akkor, ha lenyomom a flash gombot és lenyomva tartom. Ez nem ESP32 hiba, nem is értem mi az oka, van hogy egyik nap még jó másnaptól meg nem megy csak gombot lenyomva a letöltés.Wifi nagy előny, ESPnow-al kettő eszköz tud egymással kommunikálni wifin. Én rendeltem utóbb 2 db arduino mini-t ha esetleg kellene legyen, de ezen kívül csak ESP32-ből van 2 db. Ha vennem kellene maradnék az ESP32-nél.
-
Tomika86
senior tag
-
-
Tomika86
senior tag
Sziasztok!
Csak egy kérdés,
Amit mega2560ra megírtam, az működik ESP32-vel is?
Arra gondoltam, lehet inkább azzal mennék tovább, ami plussz kell, hogy 3,3Vról megy mindene.
ADC esetén a 0-5v ellenállásosztóval megoldható 3,3vra?Köszönöm
-
válasz
Tomika86 #15615 üzenetére
10cm vezeték, eaton 10kohm
Az külső zaj szempontjából jónak mondható.Schmitt-trigger: nem árt, ha tudod, hogy az AVR-ekben gyárilag van egy analóg komparátor (egy belső opamp), állítható referenciafeszültséggel, amire interruptot is tudsz beállítani. Ha esetleg külön külső áramkör nélkül szeretnéd megoldani. Bár a sebességét nem tudom, hogy mennyire lenne alkalmas a feladatra, de szerintem 8000rpm-mel még simán megbirkózik.
-
Tomika86
senior tag
-
válasz
Tomika86 #15608 üzenetére
Írj az uno-ra egy programot, ami kihagyja az ADC-t, és magától sweep-el az alsó és felső frekvencia közt, egyenletesen vagy random értékek közt.
De azt is lehetne, hogy kihagyod a pwm megoldást, és te magad állítod elő a négyszög jelet, a loop ciklusban, delay-ekkel. Mivel a programnak gyakorlatilag nincs más dolga. -
Tomika86
senior tag
Erre gondolok hogy az Unoból ered a 0ra ugrás.
De a bonyolultabb program nem mozog, csak 0ra ugrik letekerésnél. A letekerést úgy érsd hogy 6000es fordulatról hirtelen 4000re,akkor leesik 0ra egy pillanatra.A másik viszont ugrál kettő érték között.
Adcre tettem aluláteresztő szűrőt, de gondolom nem elég.
-
válasz
Tomika86 #15605 üzenetére
Az ugrálás nem az uno-ból ered? A kódban semmi sem indokolja. Mint ahogy a 0-ra zuhanást sem.
A potméter értékét sem kellene egy az egyben alapul venni, azt is szűrni (átlagolni) kellene, mert maga az ADC is zajos, és a vezetékek is összeszedhetnek zajt, amivel a potit a bemenetre kötötted. Az autónál pedig amúgy sem fog olyan eset előfordulni, hogy hirtelen változzon a fordulatszám például 0 és 1800 között. -
Tomika86
senior tag
Kipróbáltam több értékkel a tömb elemeit, most már csak annyi van, ha hirtelen tekerem le a potmétert akkor leesik egy pillanatra a mutató, akár 0-ra is.
De szerintem ez az uno baja, amivel a négyszögjelet állítom be, a frekvenciát pedig analóg úton változtatom.
Ez viszont ugrál két pont között, pl 1500-1800 két értéken. [link] -
válasz
Tomika86 #15599 üzenetére
A numReadings = 2; írd át 3-ra, vagy akár 30-ra, mert a két értékből számolt átlag túl kevés a sima kijelzéshez. Addig növeld, míg a kívánt simaságot nem éri el a kijelzés.
A mutató mozgása a fordulatszám növekedésével egyre "izgágább" lesz, mivel az átlag képzése nem az időt, hanem a mérések számát veszi alapul. Tehát vagy beállítasz egy optimális középutat a numReadings-nek, vagy írsz egy idő alapú átlagszámítást. Esetleg a sebesség növekedésével arányosan több mintavételből számolod az átlagot. -
Új hozzászólás Aktív témák
Hirdetés
- AMD Navi Radeon™ RX 9xxx sorozat
- Autós topik
- Autós topik látogatók beszélgetős, offolós topikja
- Elektromos cigaretta 🔞
- HP notebook topic
- Filmvilág
- Bluetooth hangszórók
- Bemutatkozott a Poco X7 és X7 Pro
- Fejhallgató erősítő és DAC topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! Sapphire Nitro+ RX 6800 XT 16GB videokártya garanciával hibátlan működéssel
- Samsung Galaxy A52s 128GB, Kártyafüggetlen, 1 Év Garanciával
- Asus ROG G20AJ - Intel Core i7-4790, GTX 980
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest