Teď už vím, v čem je problém, potřebuji vytvořit vyrovnávací paměť pro ukládání proměnných. Změněný kód sem vložím.
Kód: Vybrat vše
int t = 40;
int rnd =5;
int pat1t =300;
uint8_t RecievedTemp[9] = {0};
uint8_t RecievedTemp1[10] = {0};
uint8_t button1[10] = {0x00, 0xA5, 0x5A, 0x06, 0x83, 0x00, 0x0E, 0x01, 0x00, 0x01};
uint8_t button2[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00, 0x0B, 0x01, 0x00, 0x02};
uint8_t button3[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00, 0x0B, 0x01, 0x00, 0x03};
uint8_t button4[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00, 0x0B, 0x01, 0x00, 0x04};
uint8_t button5[9] = {0xA5, 0x5A, 0x06, 0x83, 0x00, 0x0B, 0x01, 0x00, 0x05};
uint8_t cout_i = 0;
void setup()
{
Serial.begin(115200);
for(int i=3; i<=8; i++)
pinMode(i,OUTPUT);
}
void loop(){
if(Serial.available() != 0)
{
for(cout_i = 0; cout_i < 10; cout_i ++)
{
RecievedTemp1[cout_i] = Serial.read();
Serial.println(RecievedTemp1[cout_i]);
}
switch(RecievedTemp1[8])
{
case 0x02:
pat2();
case 0x03:
pat3();
case 0x04:
pat4();
case 0x05:
pat5();
case 0x01:
pat1();
}
}
/*for(int i=0; i<=rnd; i++) {
pat1();}
for(int i=0; i<=rnd; i++){
pat2();}
for(int i=0; i<=rnd; i++) {
pat3();}
for(int i=0; i<=rnd; i++) {
pat4();}
for(int i=0; i<=rnd; i++){
pat5();}
for(int i=0; i<=rnd; i++) {
pat6();}
for(int i=0; i<=rnd; i++) {
pat7();}
for(int i=0; i<=rnd; i++) {
pat8();}
for(int i=0; i<=rnd; i++) {
pat9();}*/
}
void pat1(){
for(int i=3; i<=8; i++) {
digitalWrite(i,HIGH);
delay(pat1t);
digitalWrite(i,LOW);
}
for(int i=8; i>=3; i--) {
digitalWrite(i,HIGH);
delay(pat1t);
digitalWrite(i,LOW);
}
}
void pat2(){
for(int i=3; i<=12; i++) {
digitalWrite(i,HIGH);
digitalWrite(i-1,HIGH);
digitalWrite(i+1,HIGH);
delay(100);
digitalWrite(i,LOW);
digitalWrite(i-1,LOW);
digitalWrite(i+1,LOW);
}
for(int i=11; i>=4; i--) {
digitalWrite(i,HIGH);
digitalWrite(i-1,HIGH);
digitalWrite(i+1,HIGH);
delay(100);
digitalWrite(i,LOW);
digitalWrite(i-1,LOW);
digitalWrite(i+1,LOW);
}
}
void pat3(){
for(int i=3; i<=12; i=i+2) {
digitalWrite(i,HIGH);
delay(100);
digitalWrite(i,LOW);
}
for(int i=12; i>=3; i=i-2) {
digitalWrite(i,HIGH);
delay(100);
digitalWrite(i,LOW);
}
}
void pat4(){
for(int i=3; i<=12; i++) {
digitalWrite(i,HIGH);
delay(100);
}
for(int i=12; i>=2; i--) {
digitalWrite(i,HIGH);
delay(100);
digitalWrite(i,LOW);
}
}
void pat5(){
for(int i=3; i<=12; i++) {
digitalWrite(i,HIGH);
}
delay(100);
for(int i=3; i<=12; i++) {
digitalWrite(i,LOW);
}
delay(100);
}
void pat6(){
for(int i=3; i<=8; i++) {
digitalWrite(i,HIGH);
}
for(int i=8; i<=12; i++) {
digitalWrite(i,LOW);
}
delay(200);
for(int i=3; i<=8; i++) {
digitalWrite(i,LOW);
}
for(int i=8; i<=12; i++) {
digitalWrite(i,HIGH);
}
delay(200);
}
void pat7(){
for(int i=3; i<=12; i=i+2) {
digitalWrite(i,HIGH);
}
for(int i=4; i<=12; i=i+2) {
digitalWrite(i,LOW);
}
delay(200);
for(int i=3; i<=12; i=i+2) {
digitalWrite(i,LOW);
}
for(int i=4; i<=12; i=i+2) {
digitalWrite(i,HIGH);
}
delay(200);
}
void pat8(){
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
delay(t);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
delay(t);
digitalWrite(6,HIGH);
digitalWrite(9,HIGH);
delay(t);
digitalWrite(6,LOW);
digitalWrite(9,LOW);
delay(t);
digitalWrite(5,HIGH);
digitalWrite(10,HIGH);
delay(t);
digitalWrite(5,LOW);
digitalWrite(10,LOW);
delay(t);
digitalWrite(4,HIGH);
digitalWrite(11,HIGH);
delay(t);
digitalWrite(4,LOW);
digitalWrite(11,LOW);
delay(t);
digitalWrite(3,HIGH);
digitalWrite(12,HIGH);
delay(t);
digitalWrite(3,LOW);
digitalWrite(12,LOW);
delay(t);
digitalWrite(4,HIGH);
digitalWrite(11,HIGH);
delay(t);
digitalWrite(4,LOW);
digitalWrite(11,LOW);
delay(t);
digitalWrite(5,HIGH);
digitalWrite(10,HIGH);
delay(t);
digitalWrite(5,LOW);
digitalWrite(10,LOW);
delay(t);
digitalWrite(6,HIGH);
digitalWrite(9,HIGH);
delay(t);
digitalWrite(6,LOW);
digitalWrite(9,LOW);
delay(t);
}
void pat9(){
for(int i=3; i<=12; i++) {
digitalWrite(i,HIGH);
}
for(int i=3; i<=12; i++) {
digitalWrite(i,LOW);
delay(100);
digitalWrite(i,HIGH);
}
for(int i=11; i>=4; i--) {
digitalWrite(i,LOW);
delay(100);
digitalWrite(i,HIGH);
}
}