0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaNova številkaSpremenite (skoraj) vsako površino v tipko na dotik z MPR121

    Spremenite (skoraj) vsako površino v tipko na dotik z MPR121

    Hackster Inc.

    Zmogljivost kapacitivnosti na konici prsta!

    MPR121 je 12-pinski senzor dotika, ki uporablja kapacitivnost integriranega vezja.

    Za ta IC obstajata 2 knjižnici, osebno raje uporabljam prevodno [1].

    Komponente uporabljene v tem projektu

    Hardverske komponente:
    1x Arduino UNO
    1x Adafruit kapacitivni senzor – MPR121
    1x LED-ica

    Softver:
    Arduino IDE

    Čip ima prožilni priključek, ki vam omogoča, da veste, da se je enega od priključkov nekdo dotaknil ali ga je sprostil, kar vam omogoča odličen odzivni čas in možnost uporabe prekinitve namesto skeniranja stanja v zanki – kot je prikazano v primeru. Edina slabost je, da imate samo en prožilni priključek za vseh 12 priključkov IO IC. Naslov I2C lahko nastavite s pomočjo ADDR, ki je priključek za izbiro I2C naslova. Privzeto je z uporom 100k potegnjen navzdol na maso, tako da je naslov I2C 0x5A. Lahko ga povežete tudi na 3Vo priključek za naslov 0x5B, SDA priključek za naslov 0x5C ali SCL za naslov 0x5D. Ta nastavitev velja za plošče Adafruit, nekatere klonirane plošče imajo drugačne nastavitve naslovov I2C in privzete nastavitve. Če ne veste, kateri naslov je za vašo ploščo, lahko uporabite I2C skener.

    Povezovanje plošč je zelo preprosto, kot je prikazano na risbi.

    Ena stvar, ki jo upoštevajte – večina napajalnih plošč je predvidenih za napajanje s 3,3 V, ne napajajte jih s 5 V. Kaj pa napetostni nivoji podatkov? Zaradi narave strojne opreme I2C ne boste poškodovali MPR121 s 5 V Arduino logičnimi signali. Če pa opazite težave pri branju z njega ali ga celo ne najdete na vodilu – poskusite uporabiti pretvornik logičnega nivoja med njima.

    V preteklih letih sem naredil nekaj stvari s tem odličnim IC. Od prvih stvari, ki sem jih ustvaril, je bila igra za mojega otroka, črke na vrhu so povezane z dvema MPR121 in vsak dotik bo sprožil MP3 zapis mene, ki povem ime črke.
    Hkrati sem eksperimentiral tudi z golo prevodno barvo – to je zelo zabavno in odlično deluje z MPR121.

    Program za utripanje LED-ice je enostaven in se nahaja spodaj:

    #include<MPR121.h>
    #include<Wire.h>

    #define numElectrodes 2

    #define LEDPIN 3

    voidsetup()
    {
    Serial.begin(115200);
    Serial.println(„System started“);
    pinMode(LEDPIN, OUTPUT);

    Wire.begin();

    // 0x5C is the MPR121 I2C address on the Bare Touch Board
    if (!MPR121.begin(0x5A)) {
    Serial.println(„error setting up MPR121“);
    switch (MPR121.getError()) {
    caseNO_ERROR:
    Serial.println(„no error“);
    break;
    caseADDRESS_UNKNOWN:
    Serial.println(„incorrect address“);
    break;
    caseREADBACK_FAIL:
    Serial.println(„readback failure“);
    break;
    caseOVERCURRENT_FLAG:
    Serial.println(„overcurrent on REXT pin“);
    break;
    caseOUT_OF_RANGE:
    Serial.println(„electrode out of range“);
    break;
    caseNOT_INITED:
    Serial.println(„not initialised“);
    break;
    default:
    Serial.println(„unknown error“);
    break;
    }
    while (1);
    }

    MPR121.setInterruptPin(4);
    MPR121.setTouchThreshold(40);
    MPR121.setReleaseThreshold(20);
    MPR121.updateTouchData();
    }

    voidloop()
    {
    if (MPR121.touchStatusChanged()) {
    MPR121.updateTouchData();
    for (inti=0; i<numElectrodes; i++) {
    if (MPR121.isNewTouch(i)) {
    if (i==0) {
    digitalWrite(LEDPIN, HIGH);
    }

    } elseif (MPR121.isNewRelease(i)) {
    if (i==1) {
    digitalWrite(LEDPIN, LOW);
    }
    }
    }
    }

    Povzeto po:
    https://www.hackster.io/talofer99/turn-almost-any-surface-into-a-touch-button-with-mpr121-cc4205

    Viri:
    1: https://github.com/BareConductive/mpr121

    https://hackster.io