Go Down

Topic: Problems running 8 RGB-LED, LSM9DS0 accelerometer and buzzers (Read 304 times) previous topic - next topic

Mestermini

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:
Code: [Select]



#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();

}

}

 

Go Up