Hi All.
I new to this forum so if i am posting in the wrong forum or anything like that - Please let me know.
So, A couple of friends and me is working on a project, We are making a toy - more specifically a ball with 8 RGB LEDs and some buzzers which should blink and make some simple sound whenever the ball is in motion, controlled by a LSM9DS0 accelerometer. We are using Arduino UNO.
The LEDs are connected to a TLC5940 PWM unit (which work fine), The buzzers are connected to the Arduino UNO.
Whenever the ball is rolling fast the buzzers is beeping, but the LEDs won't blink. When we test the buzzers and the LEDs individually it is working. But when we have both of them in the same IF-statement, only the buzzers work.
If any of You have any idea what could be the problem I would be glad to hear.
Thanks
The code:
#include "Tlc5940.h"
#include <SPI.h> // Included for SFE_LSM9DS0 library
#include <Wire.h>
#include <SFE_LSM9DS0.h>
#include <windows.h>
#define LSM9DS0_XM 0x1D
#define LSM9DS0_G 0x6B
LSM9DS0 dof(MODE_I2C, LSM9DS0_G, LSM9DS0_XM);
const byte INT1XM = 4;
const byte INT2XM = 5;
const byte DRDYG = 6;
boolean printRaw = true;
int led = 13;
int readString = 0;
void setup()
{
Tlc.init();
pinMode(A0, OUTPUT); // Buz
pinMode(led, OUTPUT); // LED
pinMode(INT1XM, INPUT);
pinMode(INT2XM, INPUT);
pinMode(DRDYG, INPUT);
Serial.begin(115200); /
uint16_t status = dof.begin();
Serial.println(status, HEX);
}
void loop() // LOOPING SOUND SYSTEM WITH BUZZER IN A 4 STEP ACCLERATION INTERVAL
{
dof.readAccel();
// SLOW ACCLERATION WITHIN
if (((dof.ax) > 20000) && (dof.ax) < 25000 | ((dof.ax) < -20000 && (dof.ax) > -25000))
{
tone(A0, 1000);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(2, 4095);
Tlc.set(4, 4095);
Tlc.set(9, 4095);
Tlc.set(12, 4095);
Tlc.update();
}
if (((dof.ay) > 20000) && (dof.ay) < 25000 | ((dof.ay) < -20000 && (dof.ay) > -25000))
{
tone(A0, 1000);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(2, 4095);
Tlc.set(4, 4095);
Tlc.set(9, 4095);
Tlc.set(12, 4095); //blå
Tlc.update();
}
if (((dof.az) > 30100) && (dof.az) < 35000 | ((dof.az) < -30100 && (dof.az) > -35000))
{
tone(A0, 1000);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(1, 4095);
Tlc.set(6, 4095); //Grøn
Tlc.set(8, 4095); //Gul
Tlc.set(11, 4095);
Tlc.set(3, 4095);
Tlc.set(5, 4095);
Tlc.set(7, 4095); //rød //Gul
Tlc.set(10, 4095);
Tlc.update();
}
// MEDIUM ACCLERATION WITHIN
if (((dof.ax) > 25100) && (dof.ax) < 30000 | ((dof.ax) < -25100 && (dof.ax) > -30000))
{
tone(A0, 1500);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(1, 4095);
Tlc.set(6, 4095);
Tlc.set(8, 4095);
Tlc.set(11, 4095);
Tlc.update();
}
if (((dof.ay) > 25100) && (dof.ay) < 30000 | ((dof.ay) < -25100 && (dof.ay) > -30000))
{
tone(A0, 1500);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(1, 4095);
Tlc.set(6, 4095);
Tlc.set(8, 4095);
Tlc.set(11, 4095);
Tlc.update();
}
if (((dof.az) > 20000) && (dof.az) < 25000 | ((dof.az) < -20000 && (dof.az) > -25000))
{
tone(A0, 1500);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(1, 4095);
Tlc.set(6, 4095); //Grøn
Tlc.set(8, 4095);
Tlc.set(11,4095);
Tlc.update();
}
// HIGH ACCLERATION WITHIN
if (((dof.ax) > 30100) && (dof.ax) < 35000 | ((dof.ax) < -30100 && (dof.ax) > -35000))
{
tone(A0, 2000);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(1, 4095);
Tlc.set(6, 4095); //Grøn
Tlc.set(8, 4095); //Gul
Tlc.set(11, 4095);
Tlc.set(3, 4095);
Tlc.set(5, 4095);
Tlc.set(7, 4095); //rød //Gul
Tlc.set(10, 4095);
Tlc.update();
delay(100);
}
if (((dof.ay) > 30100) && (dof.ay) < 35000 | ((dof.ay) < -30100 && (dof.ay) > -35000))
{
tone(A0, 2000);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(1, 4095);
Tlc.set(6, 4095); //Grøn
Tlc.set(8, 4095); //Gul
Tlc.set(11, 4095);
Tlc.set(3, 4095);
Tlc.set(5, 4095);
Tlc.set(7, 4095); //rød //Gul
Tlc.set(10, 4095);
Tlc.update();
}
if (((dof.az) > 30100) && (dof.az) < 35000 | ((dof.az) < -30100 && (dof.az) > -35000))
{
tone(A0, 2000);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(1, 4095);
Tlc.set(6, 4095); //Grøn
Tlc.set(8, 4095); //Gul
Tlc.set(11, 4095);
Tlc.set(3, 4095);
Tlc.set(5, 4095);
Tlc.set(7, 4095); //rød //Gul
Tlc.set(10, 4095);
Tlc.update();
}
//MAX ACCLERTION WITHIN
if (((dof.ax) > 35100) && (dof.ax) < 40000 | ((dof.ax) < -35100 && (dof.ax) > -40000))
{
tone(A0, 2500);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(3, 4095);
Tlc.set(5, 4095);
Tlc.set(7, 4095); //Rød
Tlc.set(10, 4095);
Tlc.update();
}
if (((dof.ay) > 35100) && (dof.ay) < 40000 | ((dof.ay) < -35100 && (dof.ay) > -40000))
{
tone(A0, 2500);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(3, 4095);
Tlc.set(5, 4095);
Tlc.set(7, 4095); //Rød
Tlc.set(10, 4095);
Tlc.update();
}
if (((dof.az) > 35100) && (dof.az) < 40000 | ((dof.az) < -35100 && (dof.az) > -40000))
{
tone(A0, 2500);
delay(100);
noTone(A0);
Tlc.clear();
Tlc.set(3,4095);
Tlc.set(5,4095); //Rød
Tlc.set(7,4095);
Tlc.set(10,4095);
Tlc.update();
}
}