Hírek:

Fontos tudnivalók a migrációval kapcsolatban, Kérlek nézd meg a Régi fórumról új fórumra való költözés

Main Menu

Segítség, béna vagyok!

Indította gaben, 2024 április 09, 15:35

Előző téma - Következő téma

000000000

vagy épp valami határértéken kapja az ampert a chiptől és így szép lassan elromlik miközben használom? Nem nagyon értek az elektronikához csak próbálok értelmet lelni a történésekben, köszönöm a segítséget:)

0bn8uxmw

Majdnem. A motorok Ampere a configuration_ADV.h-ban van [#wink]
Ezt keresd:
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)

000000000

// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
 
 
Megvan:)

000000000

Nah a motoromnak az adatai:
 
* Step Angle 1.8°
* NEMA17 with body length 40mm and 4 wires
* 3.4V min.
* Current 1.7A max. (1.2-1.4A recommended)
* Resistance 2oHm
* Inductance 3mH
* Torque static 3400 g.cm
* Weight 0.25g
 
Ezekszerint átkéne állítanom az értéket az x tengelyen 314-re?
 
A többi motor más, azok:
2.8V
1.68A
1.65Ω
2.8mH
4400 upto 5500 torque
 
Ezekkel eddig nem volt gond, de ezeknél is fel kéne emelnem kb ugyanannyira.

000000000

De azt nem is engedné max 255... nem igazán értem

KBalázs

Miért kéne pont 314-re? Amit persze nem tudsz, ahogy írtad magad is.  
Most 0.75A-t kap a motor, vagyis minden motor, de ezzel van a gondod csak. Ha fel is tekered, max. 190-200-ig tekerheted fel, ez a motorod ajánlott határértéke kb, 1A felett valamivel.

0bn8uxmw

azért 255 mert 8 bit-en tárolja az adatot és annak max 256 értéke lehet (0-255) szerintem próbáld meg 200 körül első körben ( 1.1 A) .

0bn8uxmw

Egyébként 235 lenne az 1.3A ami motorod specifikációja alapján pont a közép értéke de szerintem a vezérlő vagy a motor már nagyon melegedni fog.

9hpa53xy


s7manbs8


s7manbs8

De mi nem működik ? Az IC nem ad ki jelet vagy nem veszi a bemenetet ? Csak simán ha a LED lábat váltogatod, az se megy ? Van itt sok lehetőség mindig, hogy mi oka van, van rajta felhúzóellenállásod a bemeneten ?

9hpa53xy

Ha megpróbálom Sbittel definiálni a portot teljes némaság a Mega32 részéről ha PORTA=0xFF; akkor minden kimenet magas világít. Ha úgy írom az összehasonlítást hogy if (PORTB=0b10000000) PORTA=0b10000000; else PORTA=0b00000000; akkor megy. Valami az Sbit.h val nem jó szerintem.

s7manbs8

Én csak odamásoltam a példákat, azt nem tudom milyen hiba lehet benne, ami miatt esetleg nem működik nálad, vagy még valami hiányzik neki. Van úgy, hogy valami nem megy, akkor ha nem jövök rá mitől van más megoldás, mint amit írtál is itt. A másik példa makrókat is lehet ide nem linkeltem be van sokféle, ami jobban tetszik lehet válogatni. Olyan is lehet, hogy a fordítónál valami paramétert állítani kell, mert az t az sbit tömörített tárolást nem minden üzemmódban fordítja jól szerintem jó az, csak valami miatt nem jól fordul akkor le pl. lehet ez is oka. Csak tippelek.

s7manbs8

Pl. ezek is jók ilyenre bitmanipulációk:
 
I use macros to simplify bit setting and I also use macros to test bits
 
#define BIT(x) (1 << (x))
#define SETBITS(x,y) ((x) |= (y))
#define CLEARBITS(x,y) ((x) &= (~(y)))
#define SETBIT(x,y) SETBITS((x), (BIT((y))))
#define CLEARBIT(x,y) CLEARBITS((x), (BIT((y))))
#define BITSET(x,y) ((x) & (BIT(y)))
#define BITCLEAR(x,y) !BITSET((x), (y))
#define BITSSET(x,y) (((x) & (y)) == (y))
#define BITSCLEAR(x,y) (((x) & (y)) == 0)
#define BITVAL(x,y) (((x)>>(y)) & 1)
 
For example, if I want to set bit 2 in portd I would simply include the followin C command:
SETBIT(PORTD,2);

9hpa53xy

akkor szenvedek még vele egy napot. :)