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.

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
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 541 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Zeitschaltuhr Hilfe für RTC Anfänger 4Jordy 4 158 24.03.2017 15:23
Letzter Beitrag: MicroBahner
  Infrarot zu RS232 für Steuerung DG0JG 71 1.716 13.03.2017 19:15
Letzter Beitrag: Tommy56
  Hilfe bei Taster huber5093 11 359 14.02.2017 19:26
Letzter Beitrag: Tommy56
  LED-RGB Steuerung mit IR-Fernbedienung Royal-mit-Käse 26 886 26.01.2017 18:41
Letzter Beitrag: Royal-mit-Käse
  IR Remote LED Blink TEAMHORIZON 2 182 14.01.2017 18:36
Letzter Beitrag: TEAMHORIZON
  Infrarot zu RS232 für Steuerung DG0JG 2 195 08.01.2017 23:58
Letzter Beitrag: DG0JG
  Slider Steuerung, Programmierung blueblack 21 1.228 16.10.2016 22:31
Letzter Beitrag: blueblack
Sad Ich brauche Hilfe Prosac 4 443 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 405 29.08.2016 18:59
Letzter Beitrag: MKc

Gehe zu:


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