přidání jednoho pinMode(xy,OUTPUT); znefunkční něco jiného

Odpovědět
piipecek
Příspěvky: 4
Registrován: 12 úno 2019, 20:29
Reputation: 0

přidání jednoho pinMode(xy,OUTPUT); znefunkční něco jiného

Příspěvek od piipecek » 02 črc 2019, 17:00

Ahoj, mám situaci které nerozumím: když je kód:

Kód: Vybrat vše


int motorA1 = 8;
int motorA2 = 9;
int motorB1 = 10;

void setup() {

    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);

}

void loop() {
    digitalWrite(motorA1,HIGH);
    digitalWrite(motorA2,LOW);
}

tak vše funguje jak má, A1 zapnuto A2 vypnuto a motor běží
když ale přidám jednu řádku:

Kód: Vybrat vše


int motorA1 = 8;
int motorA2 = 9;
int motorB1 = 10;


void setup() {

    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);
    pinMode(motorB1, OUTPUT);


}

void loop() {
    digitalWrite(motorA1,HIGH);
    digitalWrite(motorA2,LOW);
}
přestane to fungovat jako předtím, A1 se zastaví. proč se to dějě?

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: přidání jednoho pinMode(xy,OUTPUT); znefunkční něco jiného

Příspěvek od gilhad » 02 črc 2019, 18:42

A jak to máš zapojené?

piipecek
Příspěvky: 4
Registrován: 12 úno 2019, 20:29
Reputation: 0

Re: přidání jednoho pinMode(xy,OUTPUT); znefunkční něco jiného

Příspěvek od piipecek » 02 črc 2019, 19:12

uz jsem zjistil, ze problem bude v zapojeni. Neco blbne s H-mustkem: jeden motor ridit umi, pri druhym se to rozbiji, ale umi kazdej zvlast (WTF).

do jeho VCC mam 9V, GND do GND. a teď:

kdyz mam do arduina jen ty 2 kabely na ovladani motoru 1 tak bez problemu funguje. Když přidam jeden ze dvou kabelu pro motor 2 tak prestane jezdit i ten prvni. viz obrazek: https://pasteboard.co/Im8Qhgh.jpg . Jakmile ale propojim (10) s jednim z (B) tak to podela cely acko. je nekde v tom hmustku zkrat?

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: přidání jednoho pinMode(xy,OUTPUT); znefunkční něco jiného

Příspěvek od gilhad » 02 črc 2019, 19:55

H-můstků je celá řada a každý má jené řízení. To samé se týká motorů.

Když na vstup něčeho připojíš jen jeden z dvojice drátů a druhý necháš viset ve vzduchu, tak se to může taky chovat všelijak s ohledem na defaulty (zejména vnitřní pullupy a tak). Na Arduinu jsou neošetřené piny defaultně INPUT a mají navenek velký odpor. pinMode(motorB1, OUTPUT); přepne 10 na výstup (a tedy je tím momentem vší silou procesoru tažený k nějaké hodnotě, asi k nule) a tudíž drát na něj připojený, který byl předtím "ve vzduchu" po tomto příkazu "ve vzduchu" být přestane a je na něm velice konkrétní hodnota. Jak na takovouto kombinaci zareaguje dotyčný H-můstek by ti měl říct jeho datasheet.

(Krom toho se může stát, že jeden motor to z té baterky ještě zuby-nehty utáhne, ale u dvou už Hmůstek detekuje podpětí a odstaví se - zase bez znalosti motorů a Hmůstku těžko říct)

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: přidání jednoho pinMode(xy,OUTPUT); znefunkční něco jiného

Příspěvek od jankop » 02 črc 2019, 20:25

Víš naprosto jistě, že máš propojeny země Arduina a H-můstku? Pokud ano, tak nechápu jak můžeš namalovat ten nesmyslnej obrázek.

piipecek
Příspěvky: 4
Registrován: 12 úno 2019, 20:29
Reputation: 0

Re: přidání jednoho pinMode(xy,OUTPUT); znefunkční něco jiného

Příspěvek od piipecek » 02 črc 2019, 23:13

ano, bylo to skutečně tím, že nebyla společná zem pro hmustek a arduino. diky.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů