b

 

 

Бложик потихоньку переезжает сюда

Подключаем RGB светодиодную ленту к Arduino при помощи motor shield

подключаем к моторшилду RGB светодиодную ленту и управляем ею с пульта ДУ, код из видео










#include <Shift595.h> // https://sites.google.com/site/shift595arduino/downloads

#define M1A 2 
#define M1B 3 
#define M2A 1
#define M2B 4
#define M4A 0
#define M4B 6
#define M3A 5
#define M3B 7

#define PWM_M1 11
#define PWM_M2 3
#define PWM_M3 6
#define PWM_M4 5

#define SER1 10
#define SER2 9

#define PWRON 7

Shift595 Shifter(8, 12, 4, 1);
 
void setup()
{
  Serial.begin(9600); 
  Shifter.clearRegisters();
  
  pinMode(PWRON, OUTPUT); 
  digitalWrite(PWRON, LOW); // включение 74HC595
 
  analogWrite(PWM_M1, 255);  
  analogWrite(PWM_M2, 255);  
  analogWrite(PWM_M3, 255);  
  analogWrite(PWM_M4, 255); 
  
  delay(2000);
}

void loop(){
  
  Shifter.setRegisterPin(M1A, LOW);  
  Shifter.setRegisterPin(M2A, HIGH);  
  Shifter.setRegisterPin(M3A, LOW); 
  Shifter.setRegisterPin(M4A, LOW); 
  Shifter.setRegisterPin(M1B, HIGH);  
  Shifter.setRegisterPin(M2B, HIGH);  
  Shifter.setRegisterPin(M3B, HIGH); 
  Shifter.setRegisterPin(M4B, HIGH); 
  
  ///////
 for(int i = 0; i < 5; i++){
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue++) { 
     analogWrite(PWM_M1, fadeValue);         
     delay(1);                            
  }
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue--) { 
     analogWrite(PWM_M1, fadeValue);         
     delay(1);                            
  }
   for(int fadeValue = 0 ; fadeValue <= 255; fadeValue++) { 
     analogWrite(PWM_M4, fadeValue);         
     delay(1);                            
  }
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue--) { 
     analogWrite(PWM_M4, fadeValue);         
     delay(1);                            
  }
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue++) { 
     analogWrite(PWM_M3, fadeValue);         
     delay(1);                            
  }
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue--) { 
     analogWrite(PWM_M3, fadeValue);         
     delay(1);                            
  }
 }
  delay(500);

  
 for(int i = 0; i < 2; i++){ 
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue++) { 
     analogWrite(PWM_M3, fadeValue);         
     delay(5);                            
  }
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue--) { 
     analogWrite(PWM_M1, fadeValue);         
     delay(5);                            
  }
    for(int fadeValue = 255 ; fadeValue >= 0; fadeValue--) { 
     analogWrite(PWM_M4, fadeValue);         
     delay(5);                            
  }
 }
  delay(500);
  
 for(int i = 0; i < 2; i++){ 
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue++) { 
     analogWrite(PWM_M4, fadeValue);         
     delay(5);                            
  }
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue--) { 
     analogWrite(PWM_M1, fadeValue);         
     delay(5);                            
  }
 }
  delay(500);
  
}


#include <Shift595.h> // https://sites.google.com/site/shift595arduino/downloads
#include <IRremote.h> 

#define POWER_KEY 0x40BF30CF // коды пульта ДУ
#define KEY1 0x40BF7887
#define KEY2 0x40BFF807
#define KEY3 0xC03FC03F
#define KEY4 0xC03F40BF

#define KEYPWM1 0x40BFA05F
#define KEYPWM2 0x40BF609F
#define KEYPWM3 0x40BFE01F
#define KEYPWM7 0x40BFB04F
#define KEYPWM8 0x40BF708F
#define KEYPWM9 0x40BFF00F



#define M1A 2 
#define M1B 3 
#define M2A 1
#define M2B 4
#define M4A 0
#define M4B 6
#define M3A 5
#define M3B 7

#define PWM_M1 11 
#define PWM_M2 3  
#define PWM_M3 6
#define PWM_M4 5

#define SER1 10
#define SER2 9

#define PWRON 7

IRrecv irrecv(SER1);
Shift595 Shifter(8, 12, 4, 1);

decode_results results;
 
byte analogData1;
byte analogData2;
byte analogData3; // значения аналогово выхода 
uint32_t val;  
 
void setup()
{ 
  irrecv.enableIRIn();
  pinMode(PWRON, OUTPUT); 
  digitalWrite(PWRON, LOW); // включение 74HC595
  
  Shifter.setRegisterPin(M1A, LOW);  
  Shifter.setRegisterPin(M2A, HIGH);  
  Shifter.setRegisterPin(M3A, LOW); 
  Shifter.setRegisterPin(M4A, LOW); 
  Shifter.setRegisterPin(M1B, HIGH);  
  Shifter.setRegisterPin(M2B, HIGH);  
  Shifter.setRegisterPin(M3B, HIGH); 
  Shifter.setRegisterPin(M4B, HIGH);
 
  analogWrite(PWM_M1, 0);  
  analogWrite(PWM_M2, 0);  
  analogWrite(PWM_M3, 0);  
  analogWrite(PWM_M4, 0); 
  
}

void loop(){
   if (irrecv.decode(&results)) {
     if (results.value != 0xFFFFFFFF){ // и этот пакет не FF
      val = results.value; // сохраняем правельный пакет в переменную     
    }                 // если пришел FF, соответственно пропускаем.
    
    /// сверяем значение из переменной val.. если пришла команда повтора (пакет с FF)
    /// в переменной останется прошлый, правельный, пакет и код выполнится повторно. 
    if (val == KEYPWM7) if (analogData1 != 0) analogData1 -= 5; // если шим не равно 0 отнимаем 1     
    if (val == KEYPWM1) if (analogData1 < 255) analogData1 += 5; // если шим меньше 255 прибовляем 1 
    if (val == KEYPWM8) if (analogData2 != 0) analogData2 -= 5;  
    if (val == KEYPWM2) if (analogData2 < 255) analogData2 += 5;  
    if (val == KEYPWM9) if (analogData3 != 0) analogData3 -= 5; 
    if (val == KEYPWM3) if (analogData3 < 255) analogData3 += 5;        
    
   analogWrite(PWM_M1, analogData1);    // устанавливаем значение в выход
   analogWrite(PWM_M3, analogData2);
   analogWrite(PWM_M4, analogData3);    
   
    
    irrecv.resume(); // Receive the next value
   }
}