- Samsung Galaxy A56 - megbízható középszerűség
- Apple iPhone 16 Pro - rutinvizsga
- Magisk
- Milyen okostelefont vegyek?
- Motorola Edge 50 Ultra - szépen kifaragták
- Amazfit Active 2 NFC - jó kör
- Milyen hagyományos (nem okos-) telefont vegyek?
- Samsung Galaxy S23 Ultra - non plus ultra
- Apple Watch Sport - ez is csak egy okosóra
- Redmi Note 12 4G - valaki fizetni fog
-
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
C++ profik!
Régebben alkalmaztam egy módszert, hogy a fordítás során a fordító ne dumáljon a típus különbözőség miatt, hanem végezze amit mondok. Pl. egy pointer értékét simán be lehetett tenni egy egész változóba, stb.
"recompile"-ra emlékszem, de valószínűleg rosszul, mert sehol nem találom. Tudom, meg lehet oldani másként, de bosszant, hogy nem emlékszem rá. Tehát ezt a szót keresem, nem a típus megadásos típuskonverziót. Tudja valaki? -
Janos250
őstag
válasz
krisztianAMG #4268 üzenetére
Ezt nevezik úgy, hogy H bridge. A H betű négy sarkára jön a táp, a vízszintes részre a motor. A csúcsok mellett van egy-egy (összesen négy) FET, amit kapcsolgatsz, így a motoron hol erre, hol arra folyik az áram. Négy relével is megoldható ugyanez.
Pl.:
http://www.ebay.com/itm/L9110S-H-bridge-Stepper-Motor-Dual-DC-motor-Driver-Controller-Board-for-Arduino-/262136733719?hash=item3d08912017:g:cAgAAOSwx-9W1Pro
vagy
http://www.ebay.com/itm/Stepper-Motor-Drive-Controller-Board-Module-L298N-Dual-H-Bridge-DC-For-Arduino-/201732551359?hash=item2ef83272bf:g:JKMAAOSwkEVXGHe6 -
Janos250
őstag
Nem teljesen jól gondolod.
Eredetileg saját rendszere volt, de mióta az arduinot portolták rá, azóta gyakorlatilag mindenki arduino rendszer alatt programozza. Az eredeti keretrendszer fejlesztésével le is álltak. ARM proci, célszerűen C++ alatt programozod, de részeket rakhatsz bele C-ben, vagy assemblyben is. Pl. kényelmesen előállítható vele hardver szinten az akár 10 Hz-es megszakítás is, amit Teasüti szeretne. -
Janos250
őstag
Hú, ezek elég drágák :-(
Én ilyet használtam:
http://www.ebay.com/itm/Arduino-I2C-IIC-RTC-DS1307-AT24C32-Real-Time-Clock-Module-For-SMD-AVR-ARM-UNO-R3-/262136732796?hash=item3d08911c7c:g:3lYAAOSwX~dWps7C
Nem volt vele gond. -
Janos250
őstag
válasz
Teasüti #4251 üzenetére
"Egyébként ezt a mai világban nevetségesnek tartom, de bakker jól jön másfél KB így a rom végén"
Csak halkan kérdezem:
Nem kellene átállni ehelyett az öreg proci helyett valami korszerűbbre?
Mert ez a proci nem a "mai világ", hanem egy régebbi világ!
Ugyanilyen árért sokkal korszerűbbek is vannak! -
Janos250
őstag
Arduino + rossz DVD olvasó:
"How to Make Arduino Based Mini CNC Plotter Using DVD Drive"
http://www.instructables.com/id/How-to-Make-Arduino-Based-Mini-CNC-Plotter-Using-D/?ALLSTEPS -
Janos250
őstag
Első kérdés:
Milyen RGB leddel akarsz világítani?
a. Amelyik szalagon színenként együtt tudod vezérelni a szalag összes azonos színű ledjét, (a szalag végén 4 kivezetés van)
b. vagy amelyiken ledenként külön-külön állítod a színeket (szalag végén 3 kivezetés, WS2812B)
Kell hozzá táp (12V) valamint a led és a táp közé valamai kapcsoló szerűség, amit az arduino vezérel.
Ha a b. verzió, akkor kell hozzá megfelelő program az arduinoba, és kell valami, amivel megmondod az arduinonak, hogy mit csináljon pl. halványúljon, színt váltson, stb.Az általad linkelt ATmega328 alapú lap előnye, hogy a "klasszikus" arduino, hátránya, hogy egy kissé öregecske.
-
Janos250
őstag
Persze, profik ne arduinot használjanak.
Viszont az amatőr csak akkor tudja, hogy mint jelent pl. a
htim3.Init.Prescaler = 0;
ha előtte megnézte a manuálban, hogy mi az a prescaler.
Akkor viszont már ez is egyszerű:
*((volatile uint32_t *) (baseaddress + 0x28)) = 0 ;Persze, ha utána újra hasonló programokat kell írni, akkor sokkal könnyebb fejben tartani a Prescaler nevet, mint a 0x28 számot.
Igen, persze a HAL-ban mindennek neve van, nem kell a számokkal tökölni.
De ha az STM32CubeMX-et használjuk, akkor még grafikusan is megszerkeszthetjük. Ha tudjuk, hogy mit!
Mellesleg ez is egy C (C++) programot generál, amit utána bármilyen környezetben használhatunk.
Igaz persze, hogy az arduino elterjedt STM32masterje a Maple könyvtárát használja.
"Nem találok semmi DMA kezelési példát Arduinora"
Nem arduinora, hanem STM32 procira kell keresni. Az minden környezetben használható, mivel C (C++) -
Janos250
őstag
Én amondó vagyok, hogy a proci spéci dolgainál nem nagyon látom értelmét a környezet saját dolgait kihasználni, mert:
Először kikeresi az ember a manuálból, hogy melyik regiszterbe mit kell betölteni. Utána két lehetőség van:
1. Egyszerűen az adott cím(ek)re kiírjuk az adott érték(ek)et, és örülünk ha működik.
2. Megkeressük, hogy az adott környezetben mit minek neveznek, és az adott nevekkel, módszerrel állítjuk be a regisztereket.Ha valaki ezt foglalkozásszerűen napi 8 órában csinálja, természetesen a 2. módszer sokkal kényelmesebb. de ha valaki amatőrként (mint pl. én) csinál ezt-azt, akkor a 2. módszer csak plusz macera az elsőhöz képest. Mindamellett, ha közben átállunk egy másik környezetre, minden kezdődhet elölről.
Segítség ugyan, hogy gyakorlatilag mindenki az STM által közreadott fejlesztő környezet dolgait integrálja a sajátjába, de azért ez mégiscsak macera.
"Nem találtam Arduinora megoldást, úgyhogy IAR-ral nyomom ezt most"
Na, - többek között - ezért választom én inkább a regiszterek közvetlen írását, mert az minden környezetbe változtatás nélkül átvihető. -
Janos250
őstag
válasz
Teasüti #4133 üzenetére
"Kettő között mit csinálsz?"
Semmit, várom az idő múlását. A mikrokontrollerek az idejük döntő részében ezt csinálják: várnak
"Vagy itt is van már loop1, loop2, stb?"
Még nem találkoztam vele.
"Viszont azt megnézném hogy hozod össze delay nélkül mikroszekundum szinten a dolgot!"
72 MHz órajelnél 1 microsec az 72 utasításnyi idő. Van regiszter, ami az "órajeleket számolja".
Ezért indításkor letárolom, hogy éppen hol tart, majd figyelem, hogy a pillanatnyi és a letárolt különbsége mennyi. -
Janos250
őstag
válasz
Teasüti #4131 üzenetére
"Ennél viszont ezt hogy lehet kivitelezni delay nélkül?"
A delayt ugyebár mellőzni szoktuk, helyette valami hasonlót alkalmazunk:
https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
Pontosság növelése érdekében a proci órajelét számláló regiszter tartalmát figyeljük a millis() helyett.
Itt annyi a könnyebbség, hogy a magas szint hosszát nem kell figyelni, mert azt a hardver elintézi, csak a ciklus végét kell nézni.
Ebben jóval nagyobb a tolerancia, mint a magas szint hosszában.
Persze lehet halmozni az élvezeteket, és az előre összeállított adatok kivitelét interruptal megoldani: amikor vége a ciklusnak, interrupt, és egy újabb bit.
Vagy a magas szint lejártára interrupt, mert akkor már "feltölthető a következő bit", és akkor mehet folyamatosan a PWM, nem kell bitenként újra indítani.
Lehetőségek tárháza bőséges, csak a fantázia szab határt.
"De akkor ez az idő nem lenne ugyanúgy elég bitbang esetében is (nem tudom melyik művelet gyorsabb)?"
De, csak akkor a magas szint idejét is figyelni kell, ami sokkal precízebb időzítést igényel, mint a két egymást követő bit időzítése. De megoldható, persze. Vagy akár ezt is interrupttal intézed. -
Janos250
őstag
válasz
Teasüti #4129 üzenetére
"És két bit között folyamatosan változtatja a paraméterezést a szoftver? Ez nagyon perverz módszernek hangzik, még ha lehetséges is."
Némileg az.
"Az MCU pwm vezérlőjének basztatásához nem kell a processzor?"
De, kell. A bit küldés indításhoz. Egy adott bit küldésének a megkezdése és következő közötti idő elég ahhoz, hogy a megszakítások lekezelésre kerüljenek.
A 72 MHz olyan, mint a 640 kByte: "mindenre elég"
"hogy lesz ebből "multitasking"? "
Igazi multitasking ebből sehogy. Még olyan se, mint pl az ESP8266-on a loop1, loop2, stb. módszer, ahol minden wait, vagy "wait" átadja a vezérlést a másik loopnak.
"Teszem azt ha bejön egy megszakítás és az ISR végrehajtása közben megszakad az adatküldés, mert nincs idő basztatni a PWM vezérlőt?"
De, van idő. Nem szakad meg, mert a hardver csinálja. Csak az indításhoz kell a proci. Az indítás után min 1.2, max néhány microsec idő van. Olyan megszakítást persze nem bír el, ami néhány microsecnél hosszabb.
"kétszer akkora ROM-ja elég meggyőző."
Így van!
DMA ügyben azok válaszoljanak, akik jobban értenek a témához, mint én. -
Janos250
őstag
válasz
Teasüti #4122 üzenetére
Még egy kis kiegészítés:
Beállítod a frekit úgy, hogy 1.2 microsec (ha jól emlékszem) legyen a periódusidő, a kitöltöttséget (emelt szint hossza) pedig aszerint, hogy 0 vagy 1 kerül kiküldésre. Kiküldesz 1 bitet, várod az 1.2 microsec lejártát (közben bármi történhet, az se baj, ha néhány microsecre hosszabbodik) és küldöd a következő bitet. -
Janos250
őstag
válasz
Teasüti #4122 üzenetére
Hirtelenjében ez:
https://prohardver.hu/tema/arduino/hsz_3914-3914.html -
Janos250
őstag
Na, ez egy jó oldal
Különösen az, amire mutat:
http://www.gammon.com.au/interrupts
Ezt mindenkinek ajánlom ! -
Janos250
őstag
Igen, jelenleg az ARM STM32 vonal (M0, M3, esetleg M4, ..) az olcsó és jó megoldás, ami biztosan nem kárbaveszett munka, mert a magasabb verziójú procikon is mennek (általában) simán az alacsonyabbra írt programok. És nem utolsó szempont, hogy ARM!
A Cortexen a PWM hardver alapon egyszerűen megy, akár több is. Adott frekivel - ha kell - akár 4 különböző kitöltöttséget is tudsz timerenként.
Hardver alapon, nem kell interrupt. Ez nagyon hasznos, pl. ha valaki WS2812 pixelenként színváltós LED szalagot akar programozni. Elindítja a PWM jelet, és akár van valami interrupt, akár nincs, a PWM jel hossza nem változik.
Mindössze azt kell nézni, hogy lejárt-e már a 1.2 microsec, hogy küldhetjük a következőt. Nincs se delay, se interrupt, semmi. Korábban tetszőleges frekijű hardver PWM-re már írtam itt egy mintát.
A hang meg tipikusan I2S, de ezt csak elméletből mondom, mert ezen a proci típusom még nem próbáltam. Érdekes megoldás az I2S-re, amikor a már említett LED programozását is I2S-el oldják meg: a 0-át 1000-ként, az 1-et pedig 1110-ként küldik ki. Hasonló, mint az RLL kódolás a vincsesztereknél.Nézd meg azt a listát, ami Aryes linkelt!
-
Janos250
őstag
Távirányításra nekem mániám a WiFi.
Valamilyen olcsó ESP8266 board. pl:
http://www.ebay.com/itm/ESP8266-ESP-12E-Serial-Port-Wireless-WIFI-Module-IO-Adapter-Plate-Expansion-/252240079584?hash=item3abaae2ae0:g:MRAAAOSwL7VWjTKM
vagy ez kényelmesebb:
http://www.ebay.com/itm/NEW-Version-NodeMcu-Lua-ESP8266-CP2102-WIFI-Internet-Development-Board-Arduino-/201492149523?hash=item2ee9de3513:g:7oYAAOSwr7ZW3qee
Vagy ez:
http://www.ebay.com/itm/OTA-WeMos-D1-CH340-WiFi-Development-Board-ESP8266-ESP-12E-For-Arduino-UNO-R3-IDE-/272260523056?hash=item3f63fde430:g:8-MAAOSwnNBXTpNkEzeket mindet használtam/om, megelégedéssel. 72 Mhz, sok memória, stb.
WEB szervernek programozom, és távirányítóként az éppen kéznél levő mobiltelefon szolgál, amin mint WEB lapot nyitom meg.
Már megjelent az ESP32 is, de annak az ára még a csillagos egekben van, pedig az nagyon sok mindent tud egyetlen IC-be belepasszírozva. WiFi, BT, halom protocol, stb. Nekem egy már megérkezett (3 eFt), de a panel nem jött még meg hozzá, viszont az 50 mil-es lábakat amatőr körülmények között macerás forrasztani. Ha komplett panelt akar vásárolni az emberfia, az még az irreálisan magas 10 eFt körül van, de lesz az jóval olcsóbb is. -
Janos250
őstag
Hoppá, lemaradt a link.
STM32F103C8T6 Cortex-M3 "sárga jumperes" most kb ezer Ft, de én vettem már 800 alatt is:
http://www.ebay.com/itm/Useful-STM32F103C8T6-Cortex-M3-ARM-STM32-Minimum-System-Development-Board-Module-/391573807550?hash=item5b2b9e21be:g:pMkAAOSwmLlX6MQC
Van, aki a leaflabot kedveli inkább:STM32F103RCBT6 ARM Cortex-M3 leaflabs
http://www.ebay.com/itm/STM32F103RCBT6-ARM-Cortex-M3-leaflabs-Leaf-maple-mini-module-for-arduino-STM32-M-/152115041250?hash=item236ac353e2:g:Ln4AAOSwmtJXUlJw
És FT232RL USB-serial (5v/3.3V) konverter:
http://www.ebay.com/itm/FTDI-FT232RL-USB-to-TTL-Serial-Converter-Adapter-Module-5V-3-3V-For-Arduino-KG-/172370053398?var=&hash=item28220e4916:m:m8UO3VfixxK6PKIWoLJQJLA -
Janos250
őstag
"Vagy lecserélném egy Cortex M0-ra"
Cortex M0 5 ezerért? Na, ne!
Akkor már Cortex M3 kevesebb, mint 1(!) ezerért!Egyébként nekem is az a véleményem, hogy aki több mindent használ, az célszerű, ha továbblép egy korszerűbb processzorra. A megírt arduino programok változtatás nélkül futnak azon is, ha nincs bennük valami spéci dolog. Viszont van egy halom plusz lehetőség!
-
Janos250
őstag
" Hogy tudom ezeket kiküszöbölni?"
Korszerűbb processzor talán. De akkor nem biztos, hogy passzol a megírt kód.
Ez a hátránya az Arduino szerű projecteknek, hogy mindenki ír hozzá valamit, amik önmagukban jól működnek, de együtt kevésbé, elsősorban a megszakítások összeakadása miatt.
Ezért szoktam azt mondani, hogy bizony gyakran bele kell nézni a library forráskódjába. -
Janos250
őstag
Kipróbált már valaki ilyet?
http://www.ti.com/lit/ds/symlink/ina240.pdf
Szimpatikusnak tűnik, de az árát sem sikerült megtalálnom. -
Janos250
őstag
válasz
peter1998 #4023 üzenetére
Közben eszembe jutott, hogy Daszkalosznak hoztunk itt össze egy program nulladik verzióját, azt is megnézheted:
http://kkft.bme.hu/~johnny/arduino/arvizturotukorfurogep/sketch_sep05aWiFiRele1.ino
http://kkft.bme.hu/~johnny/arduino/arvizturotukorfurogep/arvizturotukorfurogep.png -
Janos250
őstag
válasz
peter1998 #4023 üzenetére
Jaj, most látom, rosszat írtam! :-( :-(
A paraméterek darabszáma nem a server.arg(0), hanem a server.args().
Próbáld ki ezt az internetről származó tutorial részt:String str = "Settings Saved ...\r\n";
Serial.println(server.args());
if (server.args() > 0 ) {
for ( uint8_t i = 0; i < server.args(); i++ ) {
str += server.argName(i) + " = " + server.arg(i) + "\r\n";
Serial.println("Arg "+ String(i)+"="+ server.arg(i));
}
} -
Janos250
őstag
válasz
gyapo11 #4016 üzenetére
Ugyanez, de másik szenzorral.
http://www.ebay.com/itm/NEW-TCRT5000-Barrier-Line-Track-sensor-Infrared-Reflective-Photoelectric-Switch-/141975945549?hash=item210e6d014d:g:tZQAAOxyYSdS~N~a
Nekem is ez van a FIÓKBAN, sok egyéb mellett, amit gyűjtögető szenvedéllyel megvettem, de még nem volt időm kipróbálni.
Én kiskocsi vezérlésre szánom, hogy ne menjen fejjel a falnak -
Janos250
őstag
válasz
adatfalo #3992 üzenetére
A megoldást tvamos megagadta, én csak egyetlen linket fűznék hozzá kommentár nélkül:
http://www.ebay.com/itm/New-MAX7219-Dot-led-matrix-module-MCU-control-LED-Display-modules-for-Arduino-/191975586024?var=&hash=item2cb2a2f8e8:m:mgxKJGjq_38Kv9WSRzDkjlw
Illetve egy pici megjegyzés mégis. A kínai árképzés: ha készen összeforrasztva veszed meg, akkor 458 Ft, ha az alkatrészeket zacskóban, hogy magad forraszd össze, akkor drágább -
Janos250
őstag
Az első állítólag megbízhatóan működik, de macerásabb programozni, viszont van rá kész arduino class (nem próbáltam, fiókban van)
A második elvileg sokkal jobb, mert van benne egy proci (STM8), ami fel van programozva, és egyből a kártya kódját küldi serialen. Nekem gondjaim voltak vele, félretettem, hogy majd ráérő időmben tovább foglalkozom vele.
Mindkettő ugyanazzal az olcsó kártyával, kulcstartóval, miegymással dolgozik. -
Janos250
őstag
Ha nem megy a programozás, akkor a legegyszerűbb teendő:
Le kell fordítani Arduinoval (vagy mással) egy bármilyen programot. (Export Compiled Binary)
Akkor letárolja a lefordított programot .bin kiterjesztéssel.
Utána letölteni:
STM32 Flash loader demonstrator
[link]
A letöltéshez regisztrálni kell, de gondolom mindenkinek van valami freemailes vagy hasonló fiókja, amit nem használ másra, csak az efféle regisztrációkra.
Ezzel a programmal fel kell tölteni az előbb lefordított programot (USB-n).
Utána már bármivel lehet programozni, Arduinoval is.
Érkezett olyan rendelés a kínaiaktól, hogy kapásból ezt kellett tenni, mert nem lehetett programozni. -
Janos250
őstag
válasz
gyenesmartin #3949 üzenetére
Lehet, igen. Többfunkciósak.
-
Janos250
őstag
A "sárga jumpereshez"
// Note this needs to match with the PIN_MAP array in board.cpp
enum {
PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15,
PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7,
PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15,
PC13, PC14, PC15
};Megadja a sorszám és a név összerendelését. A panelon ugyanígy vannak jelölve, P nélkül.
-
Janos250
őstag
Bocs, hogy kétszer ment fel a kép, már nem engedi javítani :-(
-
Janos250
őstag
Nekem egy nagyon régi verzióval volt, hogy valamelyik fájlban át kell írni a patht , de amit használok (pár hónapja töltöttem le) azzal nem volt semmi nyűgje.
Úgy látszik, sikerült megint valamit elcseszniük, ugyanis az arduino újabb verziói mindig tartalmaznak valami "újítást", amit a nem hivatalos bővítések mindig késve alkalmaznak
Pár hónapja bejelentették, hogy hivatalos STM32 board is meg fog jelenni, de azóta nagy csend van körülötte.Ja, és nekem volt egyszer régebben olyan gondom, hogy a path túl hosszú volt a windowsnak.
Azóta nem az installálós verziót használom, hanem beteszem a gyökérbe, és "portable" módban használom. Attól lesz portable, hogy az ELSŐ INDÍTÁS ELŐTT csinálunk egy portable könytárat. Ha ezt megtalálja, akkor oda rakja a programokat, miegymást. Viszont nem szerepel a programok listáján, közvetlenül kell elindítani az arduino.exet. -
Janos250
őstag
Jó tutorialt sajnos én sem tudok :-(
Mivel van gondod?
Az STM32 arduino alatt a libmaple könyvtárakat használja, azt aplikálták rá. Eléggé áttekinthetetlen, mert az include-ok include-jainak az include-jaiban még további include-okra vannak hivatkozások. :-( Nekem pl. annak idején fél órámba telt, mire megtaláltam, hogy az __io az egyszerüen volatile-ként van definiálva. Így szebb, de ha volatile maradt volna, azonnal tudná mindenki, hogy mi az, így meg bogarászhat.
Igyekeztek a HAL rétegnek az STM által adott verzióját alkalmazni. Így valóban nagyon megkönnyítik azoknak a dolgát, akik a nap 8 (vagy több) órájában ezt programozzák, mert könnyebb megjegyezni, hogy az enable az EN, mint a bitek helyét. Viszont egy magamfajta amatőrnek ez nem sokat segít, mert ugyanúgy meg kell keresnem a manualban a regisztert, és megnézni, hogy melyik bit micsoda. Én pl. amikor a PWM frekit kellett változtatnom, záros határidőn belül megtaláltam a manuálban, hogy melyik regiszter melyik bitjét mire kell állítani. Viszont utána jó időbe tellett, mire megkerestem, hogy ezt a regisztert melyik struct írja le, és utána írtam át. Így persze az esetleges változtatás már természeten könnyebb.
Na, síránkozás után a Te problémád:
Arduino alatt a portolás általában nem okoz gondot, mert ez elég nagyfokú kompatibilitást biztosít. Az AVR-re írt programok - forrásnyelven áttéve - általában jól futnak STM32 alatt is, egyszerűen csak a proci típusát kell átcserélni. Viszont ha közvetlenül nyúlsz a hardverhez, akkor természetesen cserélni kell. -
Janos250
őstag
válasz
FireKeeper #3923 üzenetére
CH340G van ráírva, az eszközkezelőben CH340-ként (USB\VID_1A86&PID_7523&REV_0254)
jelenik meg. -
Janos250
őstag
"A frekvencia nem, hogy állandó?"
Nem tudom, aktuális-e még, de leírom, hátha mást is érdekel a PWM frekvencia állítása.
STM32-n nem kell szoftverből megszakítással vezérelni, a hardver elintézi úgy, hogy nem fogyaszt processzor időt, illetve nem befolyásolja, ha valami másik megszakítás közbejön. Ha valakit érdekel részletesebben, a munualokban megtalálja. Itt csak annyi, amit az Arduino alapbeállításai után át kell állítani:uint32_t baseaddress = 0x40000000;
void setup()
{
pinMode(3, PWM);
*((volatile uint32_t *) (baseaddress + 0x28)) = 0 ; //PSC
*((volatile uint32_t *) (baseaddress + 0x2C)) = 719; //ARR
*((volatile uint32_t *) (baseaddress + 0x40)) = 72 ; //CCR4
*((volatile uint32_t *) (baseaddress + 0x20)) = 4096 ; //CCER
// 100 kHz, 10 us, 1 us
// Hz = CLK / (( PSC + 1) * (ARR + 1)
// 72 000 000 / 1 / 720 = 100 000 Hz
// kitöltöttség = CCR4 / (ARR + 1) = 0.1 (10%)
};
void loop()
{
// Ha a kitöltöttséget akarjuk változtatni 0% és 100 % között:
// *((volatile uint32_t *) (baseaddress + 0x40)) = 720 * (szazalek/100) ;
}Ez a képernyőrészlet copy az STM32F103C8T6-ba ("sárga jumperes") készült, elvileg a többi STM32-ben is kéne működni.
-
Janos250
őstag
válasz
zsolti_20 #3902 üzenetére
Én még nem használtam, ezért csak más tapasztalatom tudom mondani:
Én egyszer egy GSM modullal szívtam sokáig.
Hiába írta rá a kicsi kínai a tápra, hogy 2A, valójában SOKKAL kevesebbet tudott, a modul meg adáskor
IGEN NAGY áramot igényelt. Rátettem egy valóban erős tápra és megoldódott a probléma.
Ezen túl vagy? :
[link] -
Janos250
őstag
CH340G az USB konvertere, és az a winben többnyire nincs benne alapból.
Pl. itt van hozzá driver:
https://github.com/HobbyComponents/CH340-Drivers
Van újabb is, én a 11042011, 3.3.2011.11 verziót használom, amit valamikor
a Microsoft oldaláról (úgy emlékszem) töltöttem le, de azóta ott már nincs. -
Janos250
őstag
Kösz :-)
Az egy jó kis lap, nem kell különösebben bajlódni vele, mert ha felrakod az ESP8266 dolgait
https://github.com/esp8266/Arduino
clone or download/Download ZIP , akkor automatikusan tudja.
Így is megy:
"Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json
into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas."AZ STM32-ről elég jó leírás itt van:
http://grauonline.de/wordpress/?page_id=1004
A ledet hirtelenjében én se tudom.
Ha nincs benne külön definiálás, akkor az általános arduino az érvényes.
Ha beírja a programba az ember, kiderül a szintaktikai elemzésnél. -
Janos250
őstag
válasz
World-Soft #3846 üzenetére
Mi csak egyszerű dolgokra használjuk, én is innen nézem:
http://www.st.com/content/ccc/resource/technical/document/datasheet/33/d4/6f/1d/df/0b/4c/6d/CD00161566.pdf/files/CD00161566.pdf/jcr:content/translations/en.CD00161566.pdf"Up to 80 fast I/O ports
– 26/37/51/80 I/Os, all mappable on 16
external interrupt vectors and almost all
5 V-tolerant"
Tehát befelé elbírja az 5V-ot, kifelé pedig a 3.3V-os procik magas
szintjét - tapasztalatom szerint - az 5 voltosak is magasnak érzékelik.
Ha mégsem, párszáz Ft a szintillesztő.
Valaki ajánlotta, hogy belső felhúzó ellenállás kikapcs, és kinnről 5V ráad, de ezt nem próbáltam."16-bit, motor control PWM timer with deadtime
generation and emergency stop""There are up to three synchronizable general-purpose timers
embedded in the STM32F103xx performance line devices.
These timers are based on a 16-bit auto-reload up/down counter,
a 16-bit prescaler and feature 4 independent channels each for
input capture/output compare, PWM or one-pulse mode output."Az arduino framework probléma nélkül kezeli "ugyanúgy", mint bármelyik másik boardot.
-
Janos250
őstag
válasz
World-Soft #3844 üzenetére
Vigyázz az ESP32-vel, mert most jött/jön ki, fene tudja mennyire lesz kiforrott az első időkben.
Nekem még meg se érkezett a rendelésem. Én kipróbálnék egy ilyet:
http://www.ebay.com/itm/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Arduino-/141976860562?hash=item210e7af792:g:X-oAAOSw6BtVVACk
Ez a 32 bites ARM proci a maga 72 Mhz-ével azért gyorsabb, mint az öregecske 8 bites Atmel procik (Mega2560, mini, nano), annak ellenére, hogy a kész panel összesen 660 Ft-ba kerül.
Nekem nincs vele gondom. -
Janos250
őstag
válasz
MasterMark #3822 üzenetére
Jók, persze, bár ott elég borsosak az árak.
Ha az ebay lassú, akkor én itt szoktam ilyesmit venni:
[link]
Ha precíz akarsz lenni, akkor kell ellenállás, de anélkül is megy. Azt szokták mondani, azért tegyünk oda ellenállást, hogy a FET G-S kapacitása miatt ne rántsa meg nagyon a kontroller lábát, de tapasztalatom szerint bírják ezek a kontrollerek azt is, hogy közvetlenül kössük. A közvetlen kötés előnye, hogy gyorsabb a kapcsolás, azaz kisebb a melegedés, mert a FET gyakorlatilag a kapcsolás ideje alatt melegszik. Hogy mekkorát? Ohm bácsi törvénye alapján pl. , hogy ha az IC lába és a FET között a tápfeszültség különbség van, akkor se legyen nagyobb az áram, mint ami a kontroller adatlapján van, mint legnagyobb terhelés. De hangsúlyozom: nem tapasztaltam még, hogy problémát okozott volna az ellenállás hiánya. Ha van választási lehetőséged, akkor a FET vezérléséhez 5V-os táppal járó arduinot válassz.Többen mondták már nekem, hogy 5V-os arduinoval az IRF sorozatú FET-ek is mennek, láttam is működés közben, de én mindig az IRL sorozatút használom, mert az alacsonyabb G-S feszültségen, tehát biztosabban kapcsol. -
Janos250
őstag
válasz
MasterMark #3813 üzenetére
+12V -> led + oldalára
led negatív oldala -> FET D
FET S -> közös GND (nano GND-je és a 12 V negatív oldala)
FET G -> arduino egyik digitális lábára, amit állítasz hol nullára, hol egyre.
Ezzel már elketyeg.
Az arduino Vin-jét is teheted a +12V-ra, bár a 12 V-tól már eléggé melegszik a fesz. szab IC.
Jobb lenne neki kevesebb, de akkor két táp kell. Én 9V-nál többel nem szoktam működtetni, de némileg így is melegszik, viszont 7-8 V-os
tápot nem lehet olcsón kapni az ebay-en se.
A legjobb hosszú távú megoldás az, ha a teszel be egy párszáz forintos DC-DC step down konvertert, és arról hajtod meg az arduinót. Ennek + bemenete a 12V-ra, negatívja a közös GND-re, kimenetének + oldala az arduinóra, negatív oldala szintén a közös föld (egyébként is az). Ha a fesz szab. panelt 5V-ra állítod, akkor közvetlenül kötheted a a kimenetét az arduino 5V-jára, ha meg 7-8 V-ra állítod, akkor az arduino Vin-jére.
Pl.:
http://www.ebay.com/itm/3A-DC-DC-Converter-Adjustable-Step-down-Power-Supply-Module-replace-LM2596s-DG-/172052856625?hash=item280f263f31:g:i8cAAOSwKtlWjSbd
vagy ez:
http://www.ebay.com/itm/DC-DC-LM2596-power-Supply-Buck-Converter-step-down-module-GM-/262136732989?hash=item3d08911d3d:g:XoYAAOSw6dNWSu3o
Ez utóbbiakat folyamatosan használom, bírják a strapát. -
Janos250
őstag
válasz
MasterMark #3805 üzenetére
"Ez ilyen relé szerű?"
Igen, a digitális technikában gyakorlatilag reléként használjuk.
Pl. itt van egy leírás. Középiskolásoknak íródott a Microchip PIC áramkörök használatáról,
de van benne alap áramköri bevezető a relé, tranzisztor és a FET analógiájáról és használatáról.
Csak nehogy egy villanymérnök meglássa, mert a guta megüti, hogy ilyen slendriánul van fogalmazva,
de ott a középiskolás szinten való érthetőség volt a lényeg.
Szó van benne az alapokról, de pl. a szervo és a léptető motorok működéséről is.http://kkft.bme.hu/~johnny/Diplomamunka_OcskoSzabina_2011.pdf
34. oldal, 18. ábra.
"miért a negatív oldalra kell ezeket kötni"
A már idézett linken a "low side", "high side" megoldások.
Ha nincs speciális ok, akkor a "low side" alkalmazandó, ekkor NPN tranzisztort, vagy N típusú FET-et használunk.
Mégpedig azért, mert a közös földhöz képest ebben az esetben kell pozitív feszültséget/áramot adni a FET-re/tranzisztorra,
tehát ez passzol a kontrollerekhez.Az arduino 5, vagy 3.3 V-al dolgozik, de relével/tranzisztorral/FET-tel tudunk nagyobb feszültségű áramot is kapcsolni. A megadott feszültség a FET-re (S-D) adható legnagyobb feszültséget jelenti, az áram pedig azt, hogy a drain (D) és a source (S) között maximum mekkora áram tud folyni, hogy a FET ne robbanjon fel a melegtől. Ezt az értéket persze nem kell túl komolyan venni, mert rövid idejű terhelésre vonatkoznak. Tehát ha az van írva a FET adatlapján, hogy 100 A, attól még ne akarjunk vele 100 A-t kapcsolni. Tehát ha a FET G (gate) lábát az S-hez képest néhány voltos pozitív feszültségre tesszük, akkor vezet, ha nem, akkor nem vezet. (leegyszerűsítve). A G általában közvetlenül ráköthető a kontroller lábára, ha nem akarunk nagy sebességű kapcsolgatást, de párszáz kHz-nél már meghajtó áramkör szükséges, mert a G-S ellenállás ugyan rendkívül nagy, de a kapacitás viszont nem, ezért az fel kell tölteni és ki kell sütni.
-
Janos250
őstag
válasz
MasterMark #3799 üzenetére
-
Janos250
őstag
válasz
Gergosz2 #3773 üzenetére
Az adott feladatra valóban nem biztos, hogy ez a legjobb megoldás, de a fogyasztással kapcsolatban azért túlzásokba ne essünk! Az ESP8266 tipikusan alacsony fogyasztású!
Ez az a rettentően nagy fogyasztás? Lásd link!Igen, van képe transmit közben 170mA-t is felvenni, light sleepben 10 mA-t, deep slepben meg 0.5 uA (0.5 mikro A) !
-
Janos250
őstag
-
Janos250
őstag
-
Janos250
őstag
válasz
MasterMark #3734 üzenetére
Na, azt nem tudom, mert én a PWM jelet csak FET vezérlésére használom.
100 ohmos ellenállásból szereztem be 4 darabot, ami majd illesztésre kerül a PT100-as ellenállás hőmérőhöz, de ha látnék nem drágán, még vennék tartaléknak. -
Janos250
őstag
"Ha nem az eredeti AtMega xxx proci van rajta, hogy lehet kompatibilis az UNO-val?"
Én is elcsodálkoztam az árán, és rendeltem is egyből ötöt. Megjöttek. Az előbb, tehát ki még nem próbáltam őket.
A procin ugyanaz a felirat, mint bármely másikon, de ettől még persze lehet, hogy mondjuk fából van a belseje, mint a napokban a nyíregyházi jóembernek a piacon eladott SSD meghajtó. Majd kiderül.
"lehet egyszerre 2-t is rákötni?"
Persze.
"A szervókhoz ugye nem kell meghajtó elektronika, csak táp, és lehet direktbe kötni a pwm kimenetre?"
Szervoja válogatja. Én találkoztam már olyan olcsó szervoval is, hogy a PWM jelnek táp erősségűnek kellett lenni.
"BT vagy wifi"
Ebben itt megoszlanak a vélemények. Én a WiFit pártolom, de mások meg a BT-t.
WiFi megoldásként ma az ESP12E ami leginkább szóba jöhet. Nem a WiFi shield! Pici, gyors, miegymás, de kevés az I/O lába.
Mindenki az ESP32-t várja, ami elvileg szept. 1. óta kapható, de "out of stock" :-(
A paraméterei igen meggyőzőek, tud WiFit és BT-t is, kétmagos, nagy memóriával, stb.
[link]
[link]
[link]
[link] -
Janos250
őstag
Igen, az nem árt, ennyit bőven megér.
Ez sem árt: [link]
Ebből van apa/apa, anya/anya, apa/anya.
előbb-utóbb kevés lesz a föld csatlakozási pontok száma a panelon, valahogy osztani kell.
Ahhoz ez is jól jön:
[link]Közben látom, más is ajánlotta a "solderless boardot". Igen, az a fehér műanyag.
A képen lévő jobb, mint amit én linkelte, mert azon van föld és táp "vonal", így könnyebb az ember élete, áttekinthetőbb a dolog.
Új hozzászólás Aktív témák
Hirdetés
- PayPal
- sziku69: Fűzzük össze a szavakat :)
- exHWSW - Értünk mindenhez IS
- PlayStation 5
- Formula-1 humoros
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kazy Computers - Fehérvár - Megbízható?
- Samsung Galaxy A56 - megbízható középszerűség
- Nagyrobogósok baráti topikja
- PlayStation 4
- További aktív témák...
- Cooler Master MWE Bronze V2 750W 80 PLUS Bronze
- MSI MPG Z390 GAMING EDGE AC Alaplap + Intel Core i7-8700K
- ASRock Radeon Challenger Pro RX 6700 XT 12GB OC Videokártya
- MacBook Pro 16 A2141 EMC 3347 27%, 16.1" Retina LCD IPS, i7-9750H, Radeon PRO 5300M, 16, 500, gar
- ASUS GeForce GTX 1070 Ti 8GB GDDR5 256bit
- LG 65QNED87T / 65" - 164 cm QNED / 4K UHD / 120Hz & 3ms / HDR 10 Pro / FreeSync Premium / HDMI 2.1
- LG 32SQ700S-W - 32" VA Smart - 3840x2160 4K UHD - 62Hz 5ms - WebOS - Wifi + BT - USB-C - Hangszórók
- LG 65B4 - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- BESZÁMÍTÁS! ASUS VivoBook X1504ZA notebook - i3 1215U 16GB DDR4 RAM 512GB SSD Intel UHD IGP WIN11
- BESZÁMÍTÁS! GIGABYTE H77-DS3H H77 chipset alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest