INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen
14.10.2016, 20:39 (Dieser Beitrag wurde zuletzt bearbeitet: 14.10.2016 20:53 von ardu_arne.)
Beitrag #1
Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen
Guten Abend zusammen,

ich wende mich hier im Forum zum ersten mal an die Community und hoffe ihr könnt mir helfen.
Mittlerweile habe ich etliche Stunden damit verbracht meinen Arduino Uno Code ans laufen zu bringen, leider vergebens.

Mein Projekt: RGB-LED Streifen angesteuert über Musik Spectrum Analyse mit dem MSGEQ7 Chip.

Funktion 1: Weißlicht- AN/AUS
Funktion 2: MSGEQ7 - AN/AUS
Steuerung über IR-Remote via Tastendruck

Der Code für "Funktion 1" klappt über die Remote. Allerdings "Funktion 2" bekomme ich nicht über die Remote gesteuert bzw beide Funktionen zusammen in den Code zu verpacken.....

Meine Programmier Kenntnisse sind noch auf Anfängerniveau und ich Hoffe ihr könnt mir ein paar Tipps geben um zu Lösung zu kommen.

hier beiden meine Codes:

Funktion 1:
Code:
#include <IRremote.h>
int bright;
int before;
int ledPinR = 10;
int ledPinG = 9;
int ledPinB = 11;

int RECV_PIN = 3; //data out of IR receiver connects to pin 11

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup(){
  irrecv.enableIRIn(); // start the receiver
  before=0; //LED is turned off
  pinMode(ledPinR,OUTPUT);
  pinMode(ledPinG,OUTPUT);
  pinMode(ledPinB,OUTPUT);

  
}

void loop() {
  if (irrecv.decode(&results)) {

  if (results.value==0xFFA25D){ //Code to turn the LED ON/OFF- taste
    if(before==0){ // if the LED was turned off, then we turn it on
      digitalWrite(ledPinR,HIGH);
      digitalWrite(ledPinG,HIGH);
      digitalWrite(ledPinB,HIGH);
    
      
      before=1; //LED is now turned on
    }
    else{
      digitalWrite(ledPinR,LOW);
      digitalWrite(ledPinG,LOW);
      digitalWrite(ledPinB,LOW);
      ;
      //if the LED was turned on, then we turn it off
      before=0;
      bright=255;
  
  }}
  
  irrecv.resume();
}}

Funktion 2:
Code:
int analogPin = 0;    
int strobePin = 5;    
int resetPin = 6;    
int ledPinR = 9;      
int ledPinG = 10;    
int ledPinB = 11;    
int spectrumValue[7];
int filter = 260;    
void setup() {

  Serial.begin(9600);        
  pinMode(analogPin, INPUT);  
  pinMode(strobePin, OUTPUT);
  pinMode(resetPin, OUTPUT);  
  pinMode(ledPinR, OUTPUT);    
  pinMode(ledPinB, OUTPUT);  
  pinMode(ledPinG, OUTPUT);  
  digitalWrite(resetPin, LOW);
  digitalWrite(strobePin, HIGH);
}

void loop() {

  digitalWrite(resetPin, HIGH);
  digitalWrite(resetPin, LOW);              
  for (int i = 0; i < 7; i++) {            
    digitalWrite(strobePin, LOW);          
    delayMicroseconds(30);                  
    spectrumValue = analogRead(analogPin);
    if (spectrumValue < filter) {
      spectrumValue = 0;  
    }
    spectrumValue = map(spectrumValue, 0, 750, 0, 255);
    digitalWrite(strobePin, HIGH);          

    Serial.print(spectrumValue);
    Serial.print(" ");
  }

  int redvalue = (spectrumValue[0] + spectrumValue[1] + spectrumValue[2]);
  int greenvalue = (spectrumValue[3] + spectrumValue[4]);  
  int bluevalue = (spectrumValue[5] + spectrumValue[6]);      

  if (redvalue > 255)    
  {
    redvalue = 255;    
  }
  if (greenvalue > 255)
  {
    greenvalue = 255;
  }
  if (bluevalue > 255)
  {
    bluevalue = 255;
  }
  
  Serial.print(redvalue);
  Serial.print(" ");
  Serial.print(greenvalue);
  Serial.print(" ");
  Serial.print(bluevalue);
  Serial.println();
  
  analogWrite(ledPinR, redvalue);    
  analogWrite(ledPinG, greenvalue);
  analogWrite(ledPinB, bluevalue);
}
Edit: Codebereich formatiert
Gruß Arne
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.10.2016, 21:40
Beitrag #2
RE: Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen
Du musst die Definitionen und den Setup-Inhalt des 2. Sketches in den ersten Sketch übernehmen.

Es dürfen aber keine doppelten Variablennamen und Anweisungen vorhanden sein.

Die Loop des 2. Sketches packst du in eine Funktion (eigenerName()Wink, kopierst diese ans Ende des 1. Sketch und startest diese aus der if-Anweisung mit dem 2. IR-Code deiner Wahl.

Das mal grundlegend zu deinem Problem.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Tv Wandhalterung Steuerung Sushi582 6 323 30.04.2018 22:57
Letzter Beitrag: Sushi582
Sad Hilfe bei 2.4 TFT Display Harry Hirsch 40 2.064 22.04.2018 15:34
Letzter Beitrag: Tommy56
  hilfe bei callback ausgabe per knopfdruck merz 5 230 15.04.2018 14:16
Letzter Beitrag: Tommy56
  Hilfe bei Fehlermeldung TroyPan 3 340 23.03.2018 23:38
Letzter Beitrag: Tommy56
  Hilfe beim skript Devtris 24 1.342 12.03.2018 18:19
Letzter Beitrag: Tommy56
  Hilfe bei einen kleinen Programm FPV 9 922 11.03.2018 20:42
Letzter Beitrag: Tommy56
  Hilfe beim Programmieren Klawino 28 1.610 10.03.2018 13:36
Letzter Beitrag: hotsystems
  Hilfe bei der Programmierung Digitaluhr ,mit Anzeige 32x8 Lora 1 311 10.03.2018 11:44
Letzter Beitrag: hotsystems
  Servo Steuerung mit PCA 9685 (Adressiernung) bernhard66 3 428 10.03.2018 11:06
Letzter Beitrag: juergen001
  Hold Button - Doppel Klick Hilfe GSA1150 8 652 08.03.2018 16:24
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste