Webový magazín o bastlení a tvoření. Naučte se základy programování a elektroniky zábavnou formou! Arduino a microbit projekty, návody, novinky i tutoriály pro začátečníky i pro pokročilé!
Toto téma obsahuje celkem 4 odpovědi. Do diskuze (2 diskutující) se naposledy zapojil uživatel Miroslava a poslední změna proběhla před 5 roky a 4 měsíci.
Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (celkem z 5)
Zapojila som viacero magnetických snímačov a využila tak porty Arduina (24 – 53) a Muxshield (všetky 3 riadky od 2-15). Zapojenie je nasledovné (hore je zapojenie Arduina (A) a nižšie Muxshieldu (M):
Výsledkom je, že z Arduina mi fungujú všetky snímače v poriadku avšak multiplexor mi vôbec neindikuje kedy sa spínač zopol. Používam kód z example:
//This example shows how to use the Mux Shield for digital inputs
#include <MuxShield.h>
//Initialize the Mux Shield
MuxShield muxShield;
void setup()
{
//Set IO1, IO2, and IO3 as digital inputs
muxShield.setMode(1,DIGITAL_IN);
//use DIGITAL_IN in place of DIGITAL_IN_PULLUP if internal pullups are not needed
muxShield.setMode(2,DIGITAL_IN);
muxShield.setMode(3,DIGITAL_IN);
Serial.begin(38400);
}
//Arrays to store digital values
int IO1DigitalVals[16];
int IO2DigitalVals[16];
int IO3DigitalVals[16];
void loop()
{
for (int i=0; i<16; i++)
{
//Digital read on all 16 inputs on IO1, IO2, and IO3
IO1DigitalVals[i] = muxShield.digitalReadMS(1,i);
IO2DigitalVals[i] = muxShield.digitalReadMS(2,i);
IO3DigitalVals[i] = muxShield.digitalReadMS(3,i);
}
//Print IO 1 values for inspection
Serial.print("IO1 analog values: ");
for (int i=0; i<16; i++)
{
Serial.print(IO1DigitalVals[i]);
Serial.print('\t');
}
Serial.println();
Serial.print("IO2 analog values: ");
for (int i=0; i<16; i++)
{
Serial.print(IO2DigitalVals[i]);
Serial.print('\t');
}
Serial.println();
Serial.print("IO3 analog values: ");
for (int i=0; i<16; i++)
{
Serial.print(IO3DigitalVals[i]);
Serial.print('\t');
}
Serial.println();
delay(5000);
}
Čiže v Muxshield je 48 vstupov z ktorých využívam 45 prechádzam každých 5 sekúnd zmenu ale nedeteguje sa mi nič. Vedeli by ste mi poradiť ohľadom toho či som to vôbec dobre zapojila..alebo prečo mi Muxshield nefunguje tak ako ma? Ďakujem moc 🙂
Mohl by být problém třeba s tím že pokud je spínač nespojený, pin „lítá“ -> neni ani na 1 ani na 0. Chtělo by to tedy rezistor jako máte u arduina. Taky bych ještě přidal jeden rezistor mezi tím spínačem a pinem aby omezil proud který se dostane na pin jak u arduina, tak u shieldu.
Přesně tak. Měla byste mít obvod stejný jako u arduina tzn. i s uzemněním + by se hodil ještě rezistor na ochranu pinu před velkými proudy. Sepnutím spínače připojujete VCC rovnou na pin! Mělo by to být něco jako na tomto obrázku.
Skúsila som to zmeniť – tak, že ten pin čo bol zapojený v Arduino som zapojila do multiplexora ale nič sa nezmenilo – ak priložím k snímaču magnet tak nefunguje. (pre pin v Arduino to funguje). Neviem teda v čom bude problém 🙁
Autor
Příspěvky
Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (celkem z 5)