Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   854 / 854
(#) kormika hozzászólása Feb 4, 2025 /
 

Mit rontok el?

Sziasztok!
Egy egyedi gép vezérlését építem, egy joystick segítségével van vezérelve kettő lineáris aktuátor és az egyik gombbal egy villanymotor van indítva, leállítva PWM szabályzással, teljes fordulaton egy relé kiiktatja a FET-et. A motor gombos indítása, megállítása működik (a programban a PTO kezdetű változókat és ki-bemeneteket használó rész), az egyik aktuátor szabályzása, forgásirány váltása működik ( a programban az UD kezdetű változók és ki-bemenetek tartoznak ide), de a másik aktuátornál csak a forgásirány váltó relék kimenetei változnak a joystick mozgatásának megfelelően, pwm jelet sehogysem sikerül kicsalnom, hiába írom át a 11-es pint bármelyik PWM képes lábra, nem működik... Mit nem veszek észre, vagy mit rontok el? Kérlek segítsetek!
  1. int PTOButton = 4;
  2. int UDin = A0;
  3. int LRin = A1;
  4. const int LPin = 12;
  5. const int RPin = 13;
  6. const int UPin = 8;
  7. const int DPin = 7;
  8. const int PTOPin = 9;
  9. const int PTORelay = 2;
  10. const int UDPin = 10;
  11. const int LRPin = 11;
  12. int Rpm = 0;
  13. int PTOLatch =0;
  14. int Buttonlast = 0;
  15. int UD = 0;
  16. int UDduty = 0;
  17. int LR = 0;
  18. int LRduty = 0;
  19.  
  20. void setup() {
  21.  
  22. pinMode(PTOButton, INPUT);
  23. pinMode(PTOPin, OUTPUT);
  24. pinMode(PTORelay, OUTPUT);
  25. pinMode(UDin, INPUT);
  26. pinMode(UDPin, OUTPUT);
  27. pinMode(DPin, OUTPUT);
  28. pinMode(UPin, OUTPUT);
  29. pinMode(LRin, INPUT);
  30. pinMode(LRPin, OUTPUT);
  31. pinMode(LPin, OUTPUT);
  32. pinMode(RPin, OUTPUT);
  33.  
  34. }
  35.  
  36. void loop() {
  37.    
  38.     if(digitalRead(PTOButton) == LOW && Buttonlast == 1){
  39.         PTOLatch = !PTOLatch;
  40.         }
  41.     if(PTOLatch == 1){
  42.       if(Rpm < 255){
  43.         Rpm++;
  44.         analogWrite(PTOPin, Rpm);
  45.         delay(5);
  46.       }
  47.       if(Rpm == 255){
  48.         digitalWrite(PTORelay, HIGH);
  49.       }
  50.        
  51.   }
  52.    
  53.         if(PTOLatch == 0){
  54.         digitalWrite(PTORelay, LOW);
  55.         if(Rpm > 0){
  56.         Rpm --;
  57.         analogWrite(PTOPin, Rpm);
  58.         delay(5);
  59.         }
  60.      
  61.     }
  62.    Buttonlast = digitalRead(PTOButton);
  63.     delay(5);
  64.    
  65.     UD = analogRead(UDin);
  66.     if(UD > 525){
  67.     digitalWrite(DPin, HIGH);
  68.     digitalWrite(UPin, LOW);
  69.     UDduty = map(UD, 525, 1023, 1, 255);
  70.     if(UDduty < 25){
  71.         UDduty = 0;
  72.         analogWrite(UDPin, UDduty);
  73.     }
  74.     analogWrite(UDPin, UDduty);
  75.   }
  76.    
  77.     if(UD < 500){
  78.     digitalWrite(DPin, LOW);
  79.     digitalWrite(UPin, HIGH);
  80.     UDduty = map(UD, 500, 0, 1, 255);
  81.     if(UDduty < 25){
  82.         UDduty = 0;
  83.         analogWrite(UDPin, UDduty);
  84.     }
  85.     analogWrite(UDPin, UDduty);
  86.   }
  87.    
  88.   LR = analogRead(LRin);
  89.    
  90.     if(LR < 525){
  91.     digitalWrite(LPin, HIGH);
  92.     digitalWrite(RPin, LOW);
  93.     LRduty = map(LR, 525, 1023, 1, 255);
  94.     if(LRduty < 25){
  95.         LRduty = 0;
  96.         analogWrite(LRPin, LRduty);
  97.     }
  98.     analogWrite(LRPin, LRduty);
  99.   }
  100.     if(LR > 500){
  101.     digitalWrite(LPin, LOW);
  102.     digitalWrite(RPin, HIGH);
  103.     LRduty = map(LR, 500, 0, 1, 255);
  104.     if(LRduty < 25){
  105.         LRduty = 0;
  106.         analogWrite(LRPin, LRduty);
  107.     }
  108.     analogWrite(LRPin, LRduty);
  109.   }
  110. }
(#) Bagodi hozzászólása Feb 4, 2025 /
 

Nem jut eszembe

Csináltam egy programot.
Amikor bizonyos feltételek teljesülnek akkor egy kimenet aktív legyen 500ms-ig.
Már nem emlékszem, hogy kell ezt csinálni.
Valaki adna egy löketet...
Köszönöm!
A hozzászólás módosítva: Feb 4, 2025
(#) Lamprologus válasza Bagodi hozzászólására (») Feb 4, 2025 / 1
 
chatgpt.com

Írd be neki a feledatot! És megkapod a megoldást! Ennél komolyabb feladatokat is simán megold!
(#) sargarigo válasza kormika hozzászólására (») Feb 4, 2025 /
 
Nem vagyok biztos mert már régen használtam, de mintha a map formátuma kötött lenne!
LRduty = map(LR, 500, 0, 1, 255);
Az 500-nak az alacsony a 0-nak a magas értéknek kellene lennie. Tehát így:
LRduty = map(LR, 0, 500, 1, 255);

Remélem bejön!
(#) zaza99 válasza Skori hozzászólására (») Feb 4, 2025 /
 
Megjött az új ST-Link /meg egy Blue pill is/. melyik programmal csináljam reflash-elést?
(#) Skori válasza zaza99 hozzászólására (») Feb 4, 2025 /
 
STM32 ST-Link utility. Letölthető az ST oldaláról (ingyenes, de regisztrálni kell hozzá). Egy régebbi verziója fent van a weblapomon, a forrasztóállomás oldal aljánál letölthető.
(#) zaza99 válasza Skori hozzászólására (») Feb 4, 2025 /
 
Ez már megvan. Mit állítsak rajta ?
(#) kormika válasza sargarigo hozzászólására (») Feb 4, 2025 /
 
Pár sorral előrébb a fel-le iránynál működik, azt a programrészletet másoltam be Ctrl+C Ctrl+V, és a jobbra balra iránynál már nem működik, az irányváltásért felelős reléket helyesen kapcsolja, de PWM jel már nem jön ki.
(#) Potkiller hozzászólása Sze, 1:57 /
 

UNO R3 - FDN340P P-MOSFET THT kiváltása

Sziasztok!
Az lenne a kérdésem, hogy a VIN(utáni 5V)/USBVCC átkapcsolására használt FDN340P P-MOSFET THT kiváltásával próbálkozott már valaki? Van erre a célra bevált alkatrész? Röviden, szükségem van egy kapcsoló áramkörre, ami észleli, ha a készülék kap tápellátást és leválasztja az USB-ről jövő 5V-ot, és ha már az UNO-ban ott a megoldás, élnék is vele, viszont az SMD tokozást kerülném. "Egyedi" céláramkörbe szánnám, amit ha esetleg bekapcsolt állapotban felejtve kötök rá a PC-re, túléli, akár programozni/serial monitort nézegetni is lehet.

Üdvözlettel, Roland
(#) lalca válasza kormika hozzászólására (») Sze, 2:23 /
 
LR kacsacsőrök fordítva, és ha 0, nem kell kiírni, hisz utána megint kiírod.
(#) Skori válasza zaza99 hozzászólására (») Sze, 7:42 / 1
 
Csatlakoztatod a jól működő ST-Linket USB-n, arra pedig csatlakoztatod a javítandó cucc prociját, amit flash-elni akarsz.
Miután felismeri a procit a szoftver, rátöltesz egy ST-Link firmware-t. Utána csatlakoztatod a javított ST-Linket USB-n. Hagyod, hogy frissítse a firmware-t. Kész...
(#) zaza99 válasza Skori hozzászólására (») Sze, 9:07 /
 
Sikerült visszaállítani. J-Link átalakításnál viszont megint eltéglázódik.
(#) kormika válasza lalca hozzászólására (») Csü, 0:36 /
 
Ha megfordítom a kacsacsőröket, akkor csak az irányváltó relék fognak máshogyan kapcsolni. A joystick poti alapállása középállás, egyik irányban csökken a mérhető fesz, középen kb. fél tápfesz, másik irányban pedig nő a feszültség, a két if a kacsacsőrökkel ennek megfelelően hol az egyik váltóérintkezős relét húzza meg, hol a másikat, így valósul meg a motor irányváltása. A map parancsok pedig ezt a féltápnyi feszváltozást "konvertálják át" 0-100%-os pwm jellé, hogy a motorokat fokozatmentesen lehessen irányítani mindkét irányba. A nulla pedig azért van kiíratva, hogy amennyiben a kitoltés nagyon kicsi, ne menjen a motorra áram, mivel forogni amúgysem forogna, nem legyen felesleges áramfelvétel és disszipáció. Amit nem értek az az, hogy ugyanez a két if függvényes programrészlet pár sorral feljebb más nevű változókkal, másik analóg bemenetet olvasva, és másik kimeneteket használva működik gond nélkül, az LR változós részlet pedig csak a reléket kapcsolja, de azokat megfelelően, viszont PWM jel már nem keletkezik a kimeneten.
(#) B0nsh44 válasza zaza99 hozzászólására (») Csü, 4:25 /
 
Tavaly próbáltam én is az egyik klón st link v2 -t átflashelni, nem jött össze.
Inkább vettem egy j-link OB ARM -t.
Meg átflasheltem egy blue pill -t cmis-dap adapternek Bővebben: Link.
Plussz, utánépitettem egy DAPLink -et Bővebben: Link.
(#) lalca válasza kormika hozzászólására (») Csü, 4:39 /
 
Álmos vagy! Akkor cseréld meg a reléket. Nem ugyanaz a két programrészlet épp
a kacsacsőrök miatt! Én így csinálnám:
  1. if(in < 480) {
  2.         digitalWrite(Relay1_Pin, HIGH);
  3.     digitalWrite(Relay2_Pin, LOW);
  4.         duty = map(in, 480, 0, 15, 255);
  5.     }
  6. else if(in > 544) {
  7.         digitalWrite(Relay1_Pin, LOW);
  8.     digitalWrite(Relay2_Pin, HIGH);
  9.         duty = map(in, 544, 1023, 15, 255);
  10.     }
  11. else {duty = 0;}
  12.  
  13. analogWrite(Pin, duty);
A hozzászólás módosítva: Csü, 4:42
(#) sargarigo válasza kormika hozzászólására (») Csü, 6:48 /
 
Én úgy keresném meg a hibát, hogy egyelőre a rossz kód részletet törölném, aztán a jó részletet módosítanám először csak a rossz bementere, meg néznem mit csinál, aztán a rossz kimenetre. Majd mindkettőt. Így kiderul hogy hol van a hiba.
(#) sargarigo válasza sargarigo hozzászólására (») Csü, 7:03 /
 
Szerk: amúgy a kacsák szerintem is fordítva vannak.
(#) zaza99 válasza B0nsh44 hozzászólására (») Csü, 16:22 /
 
A fekete nem sikerült de a kék viszont elsőre ment.
(#) pumpa hozzászólása Csü, 20:30 /
 

5DB. Max6675, és 3DB Ds18B20-as Nagy kijelzőre?

Üdv! Szeretném megjeleníteni 3DB. Ds18b20-as érzékelőt, és 5DB.Max6675-ös érzékelőt egy nagy kijelzőre. Van Ardunio pro mini, unó, vagy Mega. Én ezekre a kijelzőkre gondoltam:
https://vi.aliexpress.com/item/1005007096645415.html?sourceType=1&a...lo2vnm
https://vi.aliexpress.com/item/1005004152942022.html?sourceType=1&a...lo2vnm
Már megcsináltam 2DB. pro minivel két kijelzővel de egy kijezőre kellene 4 sorba minél nagyobb karakterrel. Még nem foglalkoztam ilyen nagy kijelzőkkel ezért kérném a tanácsotokat.
(#) StMiklos válasza pumpa hozzászólására (») Csü, 20:38 /
 
Szevasz!

Én használok 4*20 LCD kijelzőt.

https://shop.tavir.hu/termek/shop/kijelzo/karakteres/tavir-lcd-kek-...erelt/
Amit linkeltél, én is használtam, de valamiért "megsértődőtt", nem sokáig volt jó, de biztos az én bűnöm.

Arra biztos ráfér. Olcsó, egyszerű kezelni.

Üdv: StMiklos
(#) pumpa válasza StMiklos hozzászólására (») Csü, 20:54 /
 
Köszönöm a gyors választ. Sajnos ez nekem kevés lenne ezeket a karaktereket nem látja a kamerám, ezért gondoltam 3,5-ös vagy 3.95 hüvelykes kijelzőkre.
(#) pipi válasza pumpa hozzászólására (») Pé, 0:01 / 1
 
Válassz kijelzőt. Deritsd ki a rajta lévő kontroller tipusát, ennek megfelelően kerehetsz hozzá kezelő lib-et.
Javaslom a https://github.com/Bodmer/TFT_eSPI könyvtárat, sokféle lcd-t kezel, vannak mintaprogik
(#) pumpa válasza pipi hozzászólására (») Pé, 7:45 /
 
Köszönöm, megnézem!
(#) zaza99 hozzászólása Hé, 14:27 /
 

N32G455 égetés hiba

Sziasztok!
N32G455 chipet szeretnék flashelni meglévő tartalommal. .mot . bin fájlok vannak.
Egy Kék ST-Link-et sikerült j-Linkre flasselni.

A kapcsolat sikeresen létrejön STM32G431RB mag választásával.
A rom és a rom_plus sikeresen olvasható. A flash tiltott az option meg csak egy szóközökből álló állományt hoz létre.
  1. SEGGER J-Link Commander V7.96e (Compiled Apr 17 2024 16:26:32)
  2. DLL version V7.96e, compiled Apr 17 2024 16:25:43
  3.  
  4. Connecting to J-Link via USB...O.K.
  5. Firmware: J-Link STLink V2 compiled Aug 12 2019 10:28:03
  6. Hardware version: V1.00
  7. J-Link uptime (since boot): N/A (Not supported by this model)
  8. S/N: 779982069
  9. VTref=3.300V
  10.  
  11.  
  12. Type "connect" to establish a target connection, '?' for help
  13. J-Link>connect
  14. Please specify device / core. <Default>: STM32G431RB
  15. Type '?' for selection dialog
  16. Device>
  17. Please specify target interface:
  18.   J) JTAG (Default)
  19.   S) SWD
  20.   T) cJTAG
  21. TIF>s
  22. Specify target interface speed [kHz]. <Default>: 4000 kHz
  23. Speed>
  24. Device "STM32G431RB" selected.
  25.  
  26.  
  27. Connecting to target via SWD
  28. InitTarget() start
  29. SWD selected. Executing JTAG -> SWD switching sequence.
  30. DAP initialized successfully.
  31. Skipping protection check. Reason: Unexpected DEV_ID found:0x00000511
  32. InitTarget() end - Took 12.3ms
  33. Found SW-DP with ID 0x4BA01477
  34. DPv0 detected
  35. CoreSight SoC-400 or earlier
  36. Scanning AP map to find all available APs
  37. AP[1]: Stopped AP scan as end of AP map has been reached
  38. AP[0]: AHB-AP (IDR: 0x24770011)
  39. Iterating through AP map to find AHB-AP to use
  40. AP[0]: Core found
  41. AP[0]: AHB-AP ROM base: 0xE00FF000
  42. CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
  43. Found Cortex-M4 r0p1, Little endian.
  44. FPUnit: 6 code (BP) slots and 2 literal slots
  45. CoreSight components:
  46. ROMTbl[0] @ E00FF000
  47. [0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7
  48. [0][1]: E0001000 CID B105E00D PID 003BB002 DWT
  49. [0][2]: E0002000 CID B105E00D PID 002BB003 FPB
  50. [0][3]: E0000000 CID B105E00D PID 003BB001 ITM
  51. [0][4]: E0040000 CID 00000000 PID 00000000 ???
  52. [0][5]: E0041000 CID B105900D PID 000BB925 ETM
  53. Memory zones:
  54.   Zone: "Default" Description: Default access mode
  55. Cortex-M4 identified.
  56. J-Link>loadfile c:\allpowers_2000.mot
  57. 'loadfile': Performing implicit reset & halt of MCU.
  58. Reset: Halt core after reset via DEMCR.VC_CORERESET.
  59. Reset: Reset device via AIRCR.SYSRESETREQ.
  60. Downloading file [c:\allpowers_2000.mot]...
  61.  
  62. ****** Error: Programming failed (error code = 4) for block @ address 0x08000000 (2048)
  63. Writing target memory failed.
  64. J-Link>mem 0x00 0x200
  65. Could not read memory.
  66. J-Link>


Tudnátok segíteni?

Van arduino unom, nanon meg egy Blue pill is ha esetleg kell
(#) B0nsh44 válasza zaza99 hozzászólására (») 4:07 /
 
Üdv.

Még nem volt szerencsém találkozni ezzel a mikrovezérlővel.

"Egy Kék ST-Link-et sikerült j-Linkre flasselni."
- A SEGGER J-Flash Lite v8.12 támogatja a csippet.

Ha szeretsz parancssorból programozni akkor egy "Blue pill" -ből CMSIS-DAP adaptert csinálni, és a PYOCD szintén támogatja a csippet.
- "pyocd pack install N32G455"

A csip saját bootloaderének használata.
Az adatlap szerint van fix boot loader, ehez kellene "nations mcu download tool" amihez nem találtam élő letöltési linket.
(#) B0nsh44 válasza B0nsh44 hozzászólására (») 4:49 /
 
Nem hagyot nyugodni a dolog, csak találtam letölthető tool -t. Bővebben: Link
Következő: »»   854 / 854
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem