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
  Infrarot zu RS232 für Steuerung DG0JG 46 681 22.10.2016 11:35
Letzter Beitrag: hotsystems
  Slider Steuerung, Programmierung blueblack 21 603 16.10.2016 22:31
Letzter Beitrag: blueblack
Sad Ich brauche Hilfe Prosac 4 230 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 247 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 284 27.08.2016 18:23
Letzter Beitrag: Binatone
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 447 22.08.2016 08:07
Letzter Beitrag: b3ta
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 178 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 535 06.07.2016 14:59
Letzter Beitrag: Binatone
  Hilfe beim Arduino Shield reimundko 6 451 05.06.2016 11:28
Letzter Beitrag: rpt007
  Brauche etwas Hilfe bei der Umsetzung einer Idee raspido 3 526 23.04.2016 10:26
Letzter Beitrag: rkuehle

Gehe zu:


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