Can't get the sensor to control the vibration motor

[color=#222222]Ellinor code[/color]
#include <Wire.h>
#include "Adafruit_MPR121.h"

// You can have up to 4 on one i2c bus but one is enough for testing!
Adafruit_MPR121 cap = Adafruit_MPR121();

// Keeps track of the last pins touched
// so we know when buttons are 'released'
uint16_t lasttouched = 0;
uint16_t currtouched = 0;

//Vibe circuit outputs
int VIBE1 = 4; //connect one side of vibe motor to pin D4
int VIBE2 = 5; //connect one side of vibe motor to pin D5

void setup() {
  while (!Serial);  // needed to keep leonardo/micro from starting too fast!

  Serial.begin(9600);
  Serial.println("Adafruit MPR121 Capacitive Touch sensor test");

  // Default address is 0x5A, if tied to 3.3V its 0x5B
  // If tied to SDA its 0x5C and if SCL then 0x5D
  if (!cap.begin(0x5A)) {
    Serial.println("MPR121 not found, check wiring?");
    while (1);
  }
  Serial.println("MPR121 found!");
}

void loop() {
  // Get the currently touched pads
  currtouched = cap.touched();

  for (uint8_t i = 0; i < 12; i++) {
    // it if *is* touched and *wasnt* touched before, alert!
    if ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) {
      Serial.print(i); Serial.println(" touched");
      if (i == 1) { //the textile connection to MPR pin #
        Serial.println("VIBE CIRCUIT ONE");
        digitalWrite(VIBE1, HIGH);
        delay(3000);
        digitalWrite(VIBE1, LOW);
      }
      else if (i == 6) { //the textile connection to MPR pin #
        Serial.println("VIBE CIRCUIT TWO");
        digitalWrite(VIBE2, HIGH);
        delay(3000);
        digitalWrite(VIBE2, LOW);
      }
      // if it *was* touched and now *isnt*, alert!
      if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) {
        Serial.print(i); Serial.println(" released");
      }
    }

    // reset our state
    lasttouched = currtouched;

    // comment out this line for detailed data from the sensor!
    return;

    // debugging info, what
    Serial.print("\t\t\t\t\t\t\t\t\t\t\t\t\t 0x"); Serial.println(cap.touched(), HEX);
    Serial.print("Filt: ");
    for (uint8_t i = 0; i < 12; i++) {
      Serial.print(cap.filteredData(i)); Serial.print("\t");
    }
    Serial.println();
    Serial.print("Base: ");
    for (uint8_t i = 0; i < 12; i++) {
      Serial.print(cap.baselineData(i)); Serial.print("\t");
    }
    Serial.println();

    // put a delay so it isn't overwhelming
    delay(100);
  }
[color=#222222][/color]

Wiring diagram ?
Motor ?

I don't have a wiring diagram unfortunately, I only follow instructions from my teacher. Who told me that the motor should be connected to pin D4 respektive D5 and other end to gnd.

Screenshot_2021-02-12_104036.jpg

Screenshot_2021-02-12_104036.jpg

First check that you can read the sensor,
then that you can control the motor,
only then combine the two - in other words test piece by piece before combining
so you know where the problem is.

Those instructions should include some form of wiring diagram... otherwise those instructions are basically incomplete.

Indeed go step by step, and use copious output on the Serial monitor as you go along so you know what happens.

Okey, I should be able to read the sensor as it says on the monitor MPR121 detected. The image named 121300.png is what is visible when the code I posted first is uploaded to Leonardo. When the MPR121 test is made what states on images 182254.png is visible on the monitor.

How do I control the motor itself? Is that made by trying a basic code made for a vibration motor?
Also what does copius output mean? Is it a short centence for continuous output? Meaning i should check the monitor through every step? Because that I have done from the beginning. Also I have reset the leonardo between changes as well.

Skärmbild 2021-02-07 121300.png

Skärmbild 2021-02-12 182254.jpg

Skärmbild 2021-02-07 121300.png

Skärmbild 2021-02-12 182254.jpg

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.