Go Down

Topic: Loop onderbreken met ir-signaal (Read 1 time) previous topic - next topic

MAS3

Das mooi.
Anders is er ook maar niets aan.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

DiSrUpTeR

Stom ideetje misschien,
een 2e nano er naast hangen voor de ir is dat een optie?
dat er 1 de ir doet en de ander de led-stip aan stuurd


shooter

dat is niet dom,

maar je kunt die ledstrip ook gewoon even stoppen hoor, en als je dan de IR uitleest en weer verder gaat.
Het probleem is meestal dat de software in de voorbeelden voor een taak zijn bedoeld, en als je nog een taak erbij wilt zul je zelf moeten nadenken, waarbij de gebruikte software vaak overlappen vertoont, en dus herschreven moet worden.

paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

nicoverduin

Stom ideetje misschien,
een 2e nano er naast hangen voor de ir is dat een optie?
dat er 1 de ir doet en de ander de led-stip aan stuurd


Ik zou eerder gaan om het programma te structureren en alleen die dingen doen wanneer het nodig is.
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

DiSrUpTeR

@nico, mee eens, maar op korte termijn gaat dat het denk ik niet worden.
mede omdat mijn kennis daar niet toerijkend voor is.(nog lange  niet).
goeie oefening denk je dan. ja maar de "directie"wordt ongeduldig, die wil dr lamp terug asap.

ik snap jullie goed, maar weet je is niet mijn vak of zo ben al blij als het werkt. en hoe maakt me niet uit.

dus als ik de ir-code er uit vis en op een aparte nano zet.
en de waarde van de functie() program naar de led nano stuur.
zou het moeten werken, toch?.

nicoverduin

#20
Jan 13, 2016, 03:54 pm Last Edit: Jan 13, 2016, 03:54 pm by nicoverduin
Krijg je wel een nieuwe uitdaging..... inter-processor communication of I2C of SPI
Met vriendelijke groet / kindest regards
Nico Verduin
www.verelec.nl
Do not PM me for personal consultancy unless you are willing to pay for it.

DiSrUpTeR

zal wel spi worden dan.
want volgens wiki van fastled is I2C geen optie ivm de intrupts gedoe.

FastLED Interrupt Problems - https://github.com/FastLED/FastLED/wiki/interrupt-problems

heb ook nog een gast gevonden die iets het zelfde gemaakt heeft dus kijken wat we daar aan hebben.

http://industriumvita.com/lighthouse-with-remote-controlled-led-beacon/

onder het motto: beter goed gejat dan slecht verzonnen.

DiSrUpTeR

het is gelukt,
1 ir ontvanger nano en een led controller nano.
via poort 1 en 0 aan elkaar.
lamp hangt, de directie is blij ;) , nu tijd om de code op te schonen.

aanslutinginen ontvanger:
ir data op 3
serieel 0(naar 1) en 1 (naar 0)

led controller:
led data op 6
serieel 1 (naar 0) en 0 (naar 1)


ir ontvanger code:

Code: [Select]
#include <IRremote.h>
int RECV_PIN = 3;

    #define code1  255
    #define code2  32895
    #define code3  16575
    #define code4  49215
    #define code5  8415
    #define code6  41055
    #define code7  24735
    #define code8  57375
    #define code9  4335
    #define code10 36975
    #define code11 20655
    #define code12 53295
    #define code13 12495
    #define code14 45135
    #define code15 28815
    #define code16 61455
    #define code17 2295
    #define code18 34935
    #define code19 18615
    #define code20 51255
    #define code21 10455
    #define code22 43095
    #define code23 26775
    #define code24 59415
   
IRrecv irrecv(RECV_PIN);
    decode_results results;

int command;
boolean understood = false;   

   
void setup() {
   Serial.begin(9600);   // you can comment this line
// ir 
      irrecv.enableIRIn();  // Start the receiver

irrecv.blink13(true);


}


void loop() {
 if (irrecv.decode(&results)) {
        unsigned int value = results.value;
        understood = true;
        switch(value) {
           case code1:
                command = 1;
                break;

           case code2:
               command = 2;
               break;
          case code3:
               command = 3;
               break;
          case code4:
                command = 4;
               break;
          case code5:
              command = 5;
              break;
          case code6:
               command = 6;
              break;
          case code7:
              command = 7;
              break;
          case code8:
               command = 8;
              break;
          case code9:
              command = 9;
              break;
          case code10:
               command = 25;
              break;
          case code11:
               command = 11;
              break;   
          case code12:
               command = 12;
              break;
          case code13:
               command = 26;
              break;
          case code14:
              command = 14;
              break;   
          case code15:
              command = 15;
              break;
          case code16:
              command = 16;
              break;
          case code17:
               command = 17;
              break;
          case code18:
              command = 18;
              break;         
          case code20:
              command = 20;
              break;
          case code21:
               command = 21;
              break;
          case code22:
               command = 22;
              break;
          case code24:
               command = 24;
              break;           
         default:
        understood = false;
    }
    if (understood){ Serial.println(command);}
    irrecv.resume(); // Receive the next value
     Serial.println(value);
     Serial.write(command); 
      }

}


en de led controller code:

Code: [Select]
// fastled
  #include <FastLED.h>
 #define DATA_PIN 6
 // #define CLOCK_PIN 13
  #include "Arduino.h"
 
  #define NUM_LEDS 40
 
  CRGB leds[NUM_LEDS];
 
//control
 
int program = 24;
int Brightness = 200;
int Brightnessorg = 0;
int knipper = 0;
int randNumber1 = 0;
int randNumber2 = 0;
int randNumber3 = 0;

// lichtorgel
#define soundpin 8 
int sound;

// twinkle

#define DENSITY 255

   
   
void setup() {
 
   Serial.begin(9600);   // you can comment this line

// Ledstrip     
   FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);

// licht orgel
   pinMode(soundpin, INPUT);
}

void loop() {
 
check_for_input();
 StartProgram();
}

void check_for_input() {
 
    if (Serial.available() > 0) {
      // read the incoming byte:
      program = Serial.read();
     
      // say what you got:
      //Serial.print("I received: ");
      Serial.println(program);
     
    }
 
}
void StartProgram() {
   if (program == 3) {
     uit();
   }
   if (program == 4){
    aan(); 
   }
   if (program == 5){
   knipper = 5;
   rood(); 
   }
   if (program == 6){
    knipper = 6;
    groen(); 
   }
   if (program == 7){
     knipper = 7;
    blauw(); 
   }
   if (program == 8){
     knipper = 8;
    wit(); 
   }
   if (program == 9){
     knipper = 9;
    magenta(); 
   }
   if (program == 25){
    knipper = 10;
   LimeGreen(); 
   }
   if (program == 11){
    hblue(); 
   }
   if (program == 12){
    flash(); 
   }
   if (program == 26){
    knipper = 13;
    DarkOrange(); 
   }
   if (program == 14){
    hLimeGreen(); 
   }
   if (program == 15){
    uit(); 
   }
   if (program == 16){
    lichtorgel(); 
   }
   if (program == 17){
    uit(); 
   }
   if (program == 18){
    DeepSkyBlue(); 
   }
   if (program == 19){
    hMagenta; 
   }
   if (program == 20){
    softtwinkles(); 
   }
   if (program == 21){
    looplicht(); 
   }
   if (program == 22){
    lichtorgel(); 
   }
   if (program == 23){
    hsmooth(); 
   }
   if (program == 24){
    smooth(); 
 }
  //Serial.println(program);
}

void aan() {
fill_solid( leds, NUM_LEDS, CRGB::White);
FastLED.show();
}

void aan2() {
fill_solid( leds, (20,40), CRGB::NavajoWhite);
fill_rainbow(leds, 20, 0, 12.75);
FastLED.show();
}

void haan2() {
fill_solid( leds, (20,40), CRGB::Black);
fill_rainbow(leds, 20, 0, 12.75);
FastLED.show();
}

void uit() {
fill_solid( leds, NUM_LEDS, CRGB::Black);
FastLED.show();
}

void rood() {
fill_solid( leds, NUM_LEDS, CRGB::Red);
FastLED.show();
}

void groen() {
fill_solid( leds, NUM_LEDS, CRGB::Green);
FastLED.show();
}

void blauw() {
fill_solid( leds, NUM_LEDS, CRGB::Blue);
FastLED.show();
}

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy