Pages: [1]   Go Down
Author Topic: Arduino DVD Kit  (Read 2938 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wer kann mir weiterhelfen?

Ich möchte auf der Fernbedienung eine Taste
mit folgender Funktion belegen:

Der Motor soll langsam hoch-und wieder runterfahren,
nach einem kurzen Delay die Richtung ändern
um dann wieder in einer Endlosschleife das Ganze
fortzusetzen.


Die Tastenbelegung und die Schleife habe ich bereits.
Jedoch schaffe ich es nicht, aus der Schleife herauszukommen,
wenn eine andere Taste betätigt wird.

Hier das Originalprogramm des DVD-Kits:


#define motor1Pin 4  //[ch25509]L293D [ch33455][ch29255]1A[ch25509][ch33050]
#define motor2Pin 5  //[ch25509]L293D [ch33455][ch29255]2A[ch25509][ch33050]
#define enablePin 11  //PWM[ch25509][ch33050]11[ch25509]EN[ch25509][ch33050]
#define IR_IN  8  //[ch32418][ch22806][ch25509][ch25910]
#define LED_g  12  //[ch32511]led
#define LED_r  13  //[ch32418]led

//[ch35774][ch32622][ch25511][ch21046][ch21508][ch27573][ch30340][ch25968][ch23383]IO[ch33050]
 int a = 1;
 int b = 2;
 int c = 3;
 int d = 6;
 int e = 7;
 int f = 9;
 int g = 10;

//[ch32418][ch22806][ch36965][ch25511][ch37197][ch32622]
 int Pulse_Width=0;//[ch23384][ch20648][ch33033][ch23485]
 int ir_code=0x00;// [ch29992][ch25143][ch32534][ch30721][ch20540]
 char  adrL_code=0x00;//[ch21629][ch20196][ch30721]
 char  adrH_code=0x00;//[ch21629][ch20196][ch30721][ch21453][ch30721]
 
//[ch30005][ch26426][ch21442][ch25968][ch25511][ch21046]
 boolean turn = true ;
 
//LED[ch28783][ch29366][ch24577][ch21442][ch25968]
 boolean ledSt = true ;
 
void timer1_init(void)//[ch23450][ch26102][ch22120][ch21021][ch22987][ch21270][ch20989][ch25968]
{
 TCCR1A = 0X00;
 TCCR1B = 0X05;//[ch32473][ch23450][ch26102][ch22120][ch26102][ch38047][ch28304]  
 TCCR1C = 0X00;
 TCNT1 = 0X00;
 TIMSK1 = 0X00;      //[ch31105][ch27490][ch23450][ch26102][ch22120][ch28322][ch20986][ch20013][ch26029]
}

//[ch26174][ch31034][ch25968][ch23383]0  ,  11111100
void digital_0(void)
{
 digitalWrite(g,LOW);//[ch29060][ch28781]g[ch27573]
 digitalWrite(a,HIGH);
 digitalWrite(b,HIGH);
 digitalWrite(c,HIGH);
 digitalWrite(d,HIGH);
 digitalWrite(e,HIGH);
 digitalWrite(f,HIGH);
}
//[ch26174][ch31034][ch25968][ch23383]1  , 01100000
void digital_1(void)
{
 digitalWrite(a,LOW);
 digitalWrite(d,LOW);
 digitalWrite(e,LOW);
 digitalWrite(f,LOW);
 digitalWrite(g,LOW);//[ch29060][ch28781]g[ch27573]
 digitalWrite(b,HIGH);
 digitalWrite(c,HIGH);
}
//[ch26174][ch31034][ch25968][ch23383]2
void digital_2(void)
{
 digitalWrite(f,LOW);
 digitalWrite(c,LOW);
 digitalWrite(a,HIGH);
 digitalWrite(b,HIGH);
 digitalWrite(d,HIGH);
 digitalWrite(e,HIGH);
 digitalWrite(g,HIGH);
}
//[ch26174][ch31034][ch25968][ch23383]3 22
void digital_3(void)
{
 digitalWrite(e,LOW);
 digitalWrite(f,LOW);
 digitalWrite(a,HIGH);
 digitalWrite(b,HIGH);
 digitalWrite(c,HIGH);
 digitalWrite(d,HIGH);
 digitalWrite(g,HIGH);
}
//[ch26174][ch31034][ch25968][ch23383]4
void digital_4(void)
{
 digitalWrite(a,LOW);
 digitalWrite(d,LOW);
 digitalWrite(e,LOW);
 digitalWrite(b,HIGH);
 digitalWrite(c,HIGH);
 digitalWrite(f,HIGH);
 digitalWrite(g,HIGH);  
}
//[ch26174][ch31034][ch25968][ch23383]5
void digital_5(void)
{
 digitalWrite(b,LOW);
 digitalWrite(e,LOW);
 digitalWrite(a,HIGH);
 digitalWrite(c,HIGH);
 digitalWrite(d,HIGH);
 digitalWrite(f,HIGH);
 digitalWrite(g,HIGH);
}
//[ch26174][ch31034][ch25968][ch23383]6
void digital_6(void)
{
 digitalWrite(b,LOW);
 digitalWrite(a,HIGH);
 digitalWrite(c,HIGH);
 digitalWrite(d,HIGH);
 digitalWrite(e,HIGH);
 digitalWrite(f,HIGH);
 digitalWrite(g,HIGH);
}
//[ch26174][ch31034][ch25968][ch23383]7
void digital_7(void)
{
 digitalWrite(d,LOW);
 digitalWrite(e,LOW);
 digitalWrite(f,LOW);
 digitalWrite(g,LOW);
 digitalWrite(a,HIGH);
 digitalWrite(b,HIGH);
 digitalWrite(c,HIGH);
}
//[ch26174][ch31034][ch25968][ch23383]8
void digital_8(void)
{
 digitalWrite(a,HIGH);
 digitalWrite(b,HIGH);
 digitalWrite(c,HIGH);
 digitalWrite(d,HIGH);
 digitalWrite(e,HIGH);
 digitalWrite(f,HIGH);
 digitalWrite(g,HIGH);
}
//[ch26174][ch31034][ch25968][ch23383]9
void digital_9(void)
{
 digitalWrite(e,LOW);
 digitalWrite(a,HIGH);
 digitalWrite(b,HIGH);
 digitalWrite(c,HIGH);
 digitalWrite(d,HIGH);
 digitalWrite(f,HIGH);
 digitalWrite(g,HIGH);
}
void motor_turn(void) //[ch25511][ch21046][ch39532][ch36798][ch36716][ch21521]
{
 if(turn)
 {
   digitalWrite(motor1Pin, HIGH);
   digitalWrite(motor2Pin, LOW);
 }
 else
 {
   digitalWrite(motor2Pin, HIGH);
   digitalWrite(motor1Pin, LOW);    
 }
}

//[ch26174][ch31034]----------------------------
void remote_deal(void)//[ch25191][ch34892][ch35793][ch30721][ch32467][ch26524][ch20989][ch25968]
{
 switch (adrL_code) {
   case 69:
     analogWrite(enablePin, 0);//[ch20572][ch27490][ch24037][ch20316]
     break;
   case 13:
     turn  = !turn ;      //[ch20999][ch25442][ch30005][ch26426][ch29366][ch24577][ch65292] [ch30005][ch26426][ch21453][ch36716]
     ledSt = !ledSt ;    //[ch20999][ch25442][ch23567][ch28783][ch29366][ch24577]
     break;
   case 22:
     digital_0();//[ch26174][ch31034][ch25968][ch23383]0
     motor_turn();
     analogWrite(enablePin, 190); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
   case 12:
     digital_1();
     motor_turn();
     analogWrite(enablePin, 160); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
   case 24:
     digital_2();
     motor_turn();
     analogWrite(enablePin, 130); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
   case 121:
     digital_3();
     motor_turn();
     analogWrite(enablePin, 120); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
   case 8:
     digital_4();
     analogWrite(enablePin, 100); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
   case 28:
     digital_5();
     motor_turn();
     analogWrite(enablePin, 90); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
   case 90:
     digital_6();
     motor_turn();
     analogWrite(enablePin, 60); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
   case 66:
     digital_7();
     motor_turn();
     analogWrite(enablePin, 40); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
  case 82:
     digital_8();
     motor_turn();
     analogWrite(enablePin, 20); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;
  case 74:
     digital_9();
     motor_turn();
     analogWrite(enablePin, 10); //[ch20197]PWM [ch26041][ch24335][ch65292][ch35774][ch23450][ch39532][ch36798][ch30340][ch36895][ch24230]
     break;  
   default: return;
 }
}

char logic_value()//[ch21028][ch26029][ch36923][ch36753][ch20540]“0ch25968]
{
 TCNT1 = 0X00;
 while(!(digitalRead(smiley-cool)); //[ch20302][ch31561][ch24453]
 Pulse_Width=TCNT1;
 TCNT1=0;
 if(Pulse_Width>=7&&Pulse_Width<=10)//[ch20302][ch30005][ch24179]560us
 {
   while(digitalRead(smiley-cool);//[ch26159][ch39640][ch23601][ch31561][ch24453]
   Pulse_Width=TCNT1;
   TCNT1=0;
   if(Pulse_Width>=7&&Pulse_Width<=10)//[ch25509][ch30528][ch39640][ch30005][ch24179]560us
     return 0;
   else if(Pulse_Width>=25&&Pulse_Width<=27) //[ch25509][ch30528][ch39640][ch30005][ch24179]1.7ms
     return 1;
 }
 return -1;
}
void pulse_deal()//[ch25509][ch25910][ch22320][ch22336][ch30721][ch21644][ch21629][ch20196][ch30721][ch33033][ch20914][ch20989][ch25968]
{
 int i;
 int j;
 ir_code=0x00;// [ch28165][ch38646]
 adrL_code=0x00;// [ch28165][ch38646]
 adrH_code=0x00;// [ch28165][ch38646]

 //[ch35299][ch26512][ch36965][ch25511][ch22120][ch32534][ch30721][ch20013][ch30340][ch29992][ch25143][ch32534][ch30721][ch20540]  
 for(i = 0 ; i < 16; i++)
 {
   if(logic_value() == 1) //[ch26159]1
       ir_code |= (1<<i);//[ch20445][ch23384][ch38190][ch20540]
 }
 //[ch35299][ch26512][ch36965][ch25511][ch22120][ch32534][ch30721][ch20013][ch30340][ch21629][ch20196][ch30721]
 for(i = 0 ; i < 8; i++)
 {
   if(logic_value() == 1) //[ch26159]1
     adrL_code |= (1<<i);//[ch20445][ch23384][ch38190][ch20540]
 }
 //[ch35299][ch26512][ch36965][ch25511][ch22120][ch32534][ch30721][ch20013][ch30340][ch21629][ch20196][ch30721][ch21453][ch30721]
 for(j = 0 ; j < 8; j++)
 {
   if(logic_value() == 1) //[ch26159]1
       adrH_code |= (1<<j);//[ch20445][ch23384][ch38190][ch20540]
 }
}
void remote_decode(void)//[ch35793][ch30721][ch20989][ch25968]
{
 TCNT1=0X00;      
 while(digitalRead(smiley-cool)//[ch26159][ch39640][ch23601][ch31561][ch24453]
 {
   if(TCNT1>=1563)  //[ch24403][ch39640][ch30005][ch24179][ch25345][ch32493][ch26102][ch38388][ch36229][ch36807]100ms[ch65292][ch34920][ch26126][ch27492][ch26102][ch27809][ch26377][ch25353][ch38190][ch25353][ch19979]
   {
     ir_code=0x00ff;// [ch29992][ch25143][ch32534][ch30721][ch20540]
     adrL_code=0x00;//[ch38190][ch30721][ch21069][ch19968][ch20010][ch23383][ch33410][ch20540]
     adrH_code=0x00;//[ch38190][ch30721][ch21518][ch19968][ch20010][ch23383][ch33410][ch20540]
     return;
   }  
 }

 //[ch22914][ch26524][ch39640][ch30005][ch24179][ch25345][ch32493][ch26102][ch38388][ch19981][ch36229][ch36807]100ms
 TCNT1=0X00;

 while(!(digitalRead(smiley-cool)); //[ch20302][ch31561][ch24453]
 Pulse_Width=TCNT1;
 TCNT1=0;
 if(Pulse_Width>=140&&Pulse_Width<=141)//9ms
 {

   while(digitalRead(smiley-cool);//[ch26159][ch39640][ch23601][ch31561][ch24453]
   Pulse_Width=TCNT1;
   TCNT1=0;
   if(Pulse_Width>=68&&Pulse_Width<=72)//4.5ms
   {  
     pulse_deal();
     return;
   }
   else if(Pulse_Width>=34&&Pulse_Width<=36)//2.25ms
   {
     while(!(digitalRead(smiley-cool));//[ch20302][ch31561][ch24453]
     Pulse_Width=TCNT1;
     TCNT1=0;
     if(Pulse_Width>=7&&Pulse_Width<=10)//560us
     {
       return;
     }
   }
 }
}

void setup()
{
 int i;//[ch23450][ch20041][ch21464][ch37327]
 for(i=1;i<=7;i++)
   pinMode(i,OUTPUT);//[ch35774][ch32622]1[ch65374]7[ch24341][ch33050][ch20026][ch36755][ch20986][ch27169][ch24335]
 pinMode(IR_IN,INPUT);//[ch35774][ch32622][ch32418][ch22806][ch25509][ch25910][ch24341][ch33050][ch20026][ch36755][ch20837]
 pinMode(9,OUTPUT);
 pinMode(10,OUTPUT);
 pinMode(12,OUTPUT);
 pinMode(13,OUTPUT);
}
void loop()
{
 timer1_init();//[ch23450][ch26102][ch22120][ch21021][ch22987][ch21270]
 while(1)
 {
   remote_decode();  //[ch35793][ch30721]
   remote_deal();   //[ch25191][ch34892][ch35793][ch30721][ch32467][ch26524]
   if(ledSt)
   {
     digitalWrite(LED_r, HIGH);
     digitalWrite(LED_g, LOW);
   }
   else
   {
     digitalWrite(LED_g, HIGH);
     digitalWrite(LED_r, LOW);
   }
 }

}



Und hier der Abschnitt, den ich als Endlosschleife einbauen wollte:

void remote_automatic(void)
{
 switch (adrL_code) {
   case 74:
 digital_9();
 motor_turn();
 turn  = !turn ;    
 ledSt = !ledSt ;
  
   {// fade in from min to max in increments of 5 points:
    delay(300);
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5)
   // sets the value (range from 0 to 255):
   analogWrite(enablePin, fadeValue);        
   // wait for 30 milliseconds to see the dimming effect    
  delay(300);
 
 // fade out from max to min in increments of 5 points:
 for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5)
   // sets the value (range from 0 to 255):
   analogWrite(enablePin, fadeValue);        
   // wait for 30 milliseconds to see the dimming effect    
   delay(300);
        
Logged

Pages: [1]   Go Up
Jump to: