Hi i do apologies that i forgot to paste my code when asking if there is a software issue, i have removed R1 and below is my code. my code uploads led sequences to 24ClL256 and stores them in memory and when a number is sent to the serial it runs the sequence and also gets the date and time.
#include <RTClib.h>
#include <Wire.h>
#include <Tlc5940.h>
/*
*
*
* Outputs:
* ________________________
*
Red : 1
Green : 2
Blue : 3
Red And Green : 4
Red And Blue : 5
Green And Blue : 6
All On : 7
All Off : 8
*
*
*
*
*/
#define eeprom 0x50
String readString;
int speed_threshold_1;
int speed_threshold_2;
int speed_threshold_3;
int speed_radar;
RTC_DS1307 RTC;
void setup() {
// put your setup code here, to run once:
Wire.begin();
RTC.begin();
Serial.begin(115200);
Tlc.init();
Tlc.clear();
Tlc.update();
Read();
date_time();
}
void loop() {
// put your main code here, to run repeatedly:
while (Serial.available() > 0) {
char c = Serial.read(); //gets one byte from serial buffer
readString += c; //makes the string readString
delay(5); //slow looping to allow buffer to fill with next character
}
if (readString.length() > 0) {
//Serial.println(readString);
if (readString == "Delete") {
Delete();
}
else if (readString == "Upload") {
Upload();
}
else if (readString == "Read") {
Read();
}
else if (readString == "DateTime") {
date_time();
}
else{
speed_radar = readString.toInt();
DateTime now = RTC.now();
Serial.print(speed_radar);
Serial.print("MPH");
Serial.print(",");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(",");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
if(speed_radar > 3 && speed_radar <= speed_threshold_1){
//Serial.println("Sequence 1");
sequence_1();
}
if(speed_radar > speed_threshold_1 && speed_radar <= speed_threshold_2){
// Serial.println("Sequence 2");
sequence_2();
}
if(speed_radar > speed_threshold_2 && speed_radar <= speed_threshold_3){
//Serial.println("Sequence 3");
sequence_3();
}
if(speed_radar > speed_threshold_3){
Serial.println("Sequence 4");
}
}
}
readString = "";
}
///////////////////////////Delete//////////////////////////////
void Delete() {
}
///////////////////Upload//////////////////////////
void Upload() {
///////////////////Upload Speed beign//////////////////////////
int threshold_speed_upload;
while (Serial.available() == 0)
{
}
threshold_speed_upload = Serial.parseInt();
//Serial.println(data);
Wire.beginTransmission(eeprom);
Wire.write((int)(0 >> 8)); // MSB
Wire.write((int)(0 & 0xFF)); // LSB
Wire.write(threshold_speed_upload);
Wire.endTransmission();
delay(5);
Serial.println("OK");
while (Serial.available() == 0)
{
}
threshold_speed_upload = Serial.parseInt();
Wire.beginTransmission(eeprom);
Wire.write((int)(1 >> 8)); // MSB
Wire.write((int)(1 & 0xFF)); // LSB
Wire.write(threshold_speed_upload);
Wire.endTransmission();
delay(5);
Serial.println("OK");
while (Serial.available() == 0)
{
}
threshold_speed_upload = Serial.parseInt();
Wire.beginTransmission(eeprom);
Wire.write((int)(2 >> 8)); // MSB
Wire.write((int)(2 & 0xFF)); // LSB
Wire.write(threshold_speed_upload);
Wire.endTransmission();
delay(5);
Serial.println("OK");
///////////////////Upload Speed End//////////////////////////
///////////////////Upload Squence beign//////////////////////
///////////////////Upload Squence 1//////////////////////
int sequence_upload;
int i = 3;
while(i < 11){
while (Serial.available() == 0)
{
}
sequence_upload = Serial.parseInt();
Wire.beginTransmission(eeprom);
Wire.write((int)(i >> 8)); // MSB
Wire.write((int)(i & 0xFF)); // LSB
Wire.write(sequence_upload);
Wire.endTransmission();
delay(5);
Serial.println("OK");
i++;
}
///////////////////Upload Squence 2//////////////////////
int j = 11;
while(j < 19){
while (Serial.available() == 0)
{
}
sequence_upload = Serial.parseInt();
Wire.beginTransmission(eeprom);
Wire.write((int)(j >> 8)); // MSB
Wire.write((int)(j & 0xFF)); // LSB
Wire.write(sequence_upload);
Wire.endTransmission();
delay(5);
Serial.println("OK");
j++;
}
///////////////////Upload Squence 3//////////////////////
int k = 19;
while(k < 27){
while (Serial.available() == 0)
{
}
sequence_upload = Serial.parseInt();
Wire.beginTransmission(eeprom);
Wire.write((int)(k >> 8)); // MSB
Wire.write((int)(k & 0xFF)); // LSB
Wire.write(sequence_upload);
Wire.endTransmission();
delay(5);
Serial.println("OK");
k++;
}
///////////////////Upload Squence End///////////////////////
Read();
}
///////////////////////////Read Store Variables/////////////////////////////////
void Read() {
byte rdata = 0xFF;
byte rdata2 = 0xFF;
byte rdata3 = 0xFF;
// uint8_t _byte;
Wire.beginTransmission(eeprom);
Wire.write((int)(0 >> 8)); // MSB
Wire.write((int)(0 & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(eeprom,1);
if (Wire.available()){
rdata = Wire.read();
}
//Serial.println(rdata);
speed_threshold_1 = rdata;
Wire.beginTransmission(eeprom);
Wire.write((int)(1 >> 8)); // MSB
Wire.write((int)(1 & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(eeprom,1);
if (Wire.available()){
rdata2 = Wire.read();
}
//Serial.println(rdata2);
speed_threshold_2 = rdata2;
Wire.beginTransmission(eeprom);
Wire.write((int)(2 >> 8)); // MSB
Wire.write((int)(2 & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(eeprom,1);
if (Wire.available()){
rdata3 = Wire.read();
}
//Serial.println(rdata3);
speed_threshold_3 = rdata3;
}
///////////////////////////Loop squence 1/////////////////////////////////
void sequence_1(){
uint8_t _byte;
int d = 0;
for (int i = 3; i < 11; i++) {
Wire.beginTransmission(eeprom);
Wire.write((int)(i >> 8)); // MSB
Wire.write((int)(i & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(eeprom,1);
if (Wire.available()){
_byte = Wire.read();
}
if(_byte == 1){
Tlc.set(d, 3095);
//Serial.println("RED");
}
//Green//
if(_byte == 2){
Tlc.set(d+1, 3095);
//Serial.println("Green");
}
//Blue//
if(_byte == 3){
Tlc.set(d+2, 3095);
// Serial.println("Blue");
}
//Yellow//
if(_byte == 4){
Tlc.set(d, 3095);
Tlc.set(d+1, 3095);
//Serial.println("Yellow");
}
//Magenta//
if(_byte == 5){
Tlc.set(d, 3095);
Tlc.set(d+2, 3095);
//Serial.println("Magenta");
}
//Cyan//
if(_byte == 6){
Tlc.set(d+1, 3095);
Tlc.set(d+2, 3095);
//Serial.println("Cyan");
}
//White//
if(_byte == 7){
Tlc.set(d, 3095);
Tlc.set(d+1, 3095);
Tlc.set(d+2, 3095);
//Serial.println("White");
}
d = d + 3;
}
Tlc.update();
delay(5000);
Tlc.clear();
Tlc.update();
}
///////////////////////////Loop squence 2/////////////////////////////////
void sequence_2(){
uint8_t _byte;
int d = 0;
for (int i = 11; i < 19; i++) {
Wire.beginTransmission(eeprom);
Wire.write((int)(i >> 8)); // MSB
Wire.write((int)(i & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(eeprom,1);
if (Wire.available()){
_byte = Wire.read();
}
if(_byte == 1){
Tlc.set(d, 3095);
//Serial.println("RED");
}
//Green//
if(_byte == 2){
Tlc.set(d+1, 3095);
//Serial.println("Green");
}
//Blue//
if(_byte == 3){
Tlc.set(d+2, 3095);
//Serial.println("Blue");
}
//Yellow//
if(_byte == 4){
Tlc.set(d, 3095);
Tlc.set(d+1, 309);
// Serial.println("Yellow");
}
//Magenta//
if(_byte == 5){
Tlc.set(d, 3095);
Tlc.set(d+2, 3095);
//Serial.println("Magenta");
}
//Cyan//
if(_byte == 6){
Tlc.set(d+1, 3095);
Tlc.set(d+2, 3095);
//Serial.println("Cyan");
}
//White//
if(_byte == 7){
Tlc.set(d, 3095);
Tlc.set(d+1, 3095);
Tlc.set(d+2, 3095);
//Serial.println("White");
}
d = d + 3;
}
Tlc.update();
delay(5000);
Tlc.clear();
Tlc.update();
}
///////////////////////////Loop squence 3/////////////////////////////////
void sequence_3(){
uint8_t _byte;
int d = 0;
for (int i = 19; i < 27; i++) {
Wire.beginTransmission(eeprom);
Wire.write((int)(i >> 8)); // MSB
Wire.write((int)(i & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(eeprom,1);
if (Wire.available()){
_byte = Wire.read();
}
if(_byte == 1){
Tlc.set(d, 3095);
//Serial.println("RED");
}
//Green//
if(_byte == 2){
Tlc.set(d+1, 3095);
//Serial.println("Green");
}
//Blue//
if(_byte == 3){
Tlc.set(d+2, 3095);
//Serial.println("Blue");
}
//Yellow//
if(_byte == 4){
Tlc.set(d, 3095);
Tlc.set(d+1, 3095);
// Serial.println("Yellow");
}
//Magenta//
if(_byte == 5){
Tlc.set(d, 3095);
Tlc.set(d+2, 3095);
//Serial.println("Magenta");
}
//Cyan//
if(_byte == 6){
Tlc.set(d+1, 3095);
Tlc.set(d+2, 3095);
//Serial.println("Cyan");
}
//White//
if(_byte == 7){
Tlc.set(d, 3095);
Tlc.set(d+1, 3095);
Tlc.set(d+2, 3095);
//Serial.println("White");
}
d = d + 3;
}
Tlc.update();
delay(5000);
Tlc.clear();
Tlc.update();
}
///////////////////////////Adjust Date And Time/////////////////////////////////
void date_time(){
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running, let's set the time!");
RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}