Go Down

Topic: Nybörjare: Hjälp att få min spökmätare att fungera (RGB Led teremin) (Read 2047 times) previous topic - next topic

elof

Hej, jag håller på att ta fram lite rekvisita och skall skapa en spökmätare. Min tanke är att kombinera teremin projektet från starterkitet med att samtidigt som LDR styr den lille piezon så skall den kontrollera en RGB lampa att lysa i olika färger. Jag får det helt inte att fungera, och det beror säkert enbart på att jag inte har nån aning om vad jag gör. Jag har modiferat en kod som funkar för sig för att styra RGBn som jag sedan försökt inkorporera i koden för tereminen. Men där åker jag på patrull och får det inte att fungera.

Tanken är alltså att skapa något slags mätinstrument en kan vifta eller mäta "spökaktivitet" med i ett rum osv. Min tanke är att det är bäst med ljus som mätmetod. Men äger också en IR-sensor ifall det vore en bättre idé.


Om nån har lust att hjälpa mig med det nedan så vore det välkommet.

Vill någon även förbättra idéen och hjälpa mig utveckla den än mer är det mer än välkommet, jag bjur på en öl eller nått.

Det är inte för ett komersiellt syfte.

 
Code: [Select]
/*
  Arduino Starter Kit example
 Project 6  - Light Theremin

 This sketch is written to accompany Project 6 in the
 Arduino Starter Kit

 Parts required:
 photoresistor
 10 kilohm resistor
 piezo

 Created 13 September 2012
 by Scott Fitzgerald

 http://arduino.cc/starterKit

 This example code is part of the public domain
*/

// variable to hold sensor value
int sensorValue;
// variable to calibrate low value
int sensorLow = 1023;
// variable to calibrate high value
int sensorHigh = 0;
// LED pin
const int ledPin = 13;
int LEDRed = 9;
int LEDGreen = 10;
int LEDBlue = 11;
int sensePin = 0;
int val;


void setup() {
  // Make the LED pin an output and turn it on
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, HIGH);
  void setup(){
  pinMode(LEDRed, OUTPUT);
  pinMode(LEDGreen, OUTPUT);
  pinMode(LEDBlue, OUTPUT);
  pinMode(sensePin, INPUT);
  Serial.begin(9600);

  // calibrate for the first five seconds after program runs
  while (millis() < 5000) {
    // record the maximum sensor value
    sensorValue = analogRead(A0);
    if (sensorValue > sensorHigh) {
      sensorHigh = sensorValue;
    }
    // record the minimum sensor value
    if (sensorValue < sensorLow) {
      sensorLow = sensorValue;
    }
  }
  // turn the LED off, signaling the end of the calibration period
  digitalWrite(ledPin, LOW);
}

void loop() {
  val = analogRead(sensePin);
  Serial.println(val);
  if(val < 10){
   analogWrite(LEDRed, 0);
   analogWrite(LEDBlue,0);
    analogWrite(LEDGreen,0);
  }
  else if (val<100) {
    analogWrite(LEDRed,0);
    analogWrite(LEDBlue,128);
    analogWrite(LEDGreen,128);   
  } else if (val<200) {
    analogWrite(LEDRed,map(val,100,200,0,128));
    analogWrite(LEDBlue,map(val,100,200,128,0));
    analogWrite(LEDGreen,128);
  } else if (val<300) {
    analogWrite(LEDRed,128);
    analogWrite(LEDBlue,0);
    analogWrite(LEDGreen,128); 
  } else if (val<400) {
    analogWrite(LEDRed,128);
    analogWrite(LEDBlue,map(val,200,400,0,128));
    analogWrite(LEDGreen,map(val,200,400,128,0));
  } else if (val<500) {
    analogWrite(LEDRed,128);
    analogWrite(LEDBlue,128);
    analogWrite(LEDGreen,0); 
  } else if (val<800) {
    analogWrite(LEDRed,map(val,400,800,128,0));
    analogWrite(LEDBlue,128);
    analogWrite(LEDGreen,map(val,800,400,0,128));
  }{
  //read the input from A0 and store it in a variable
  sensorValue = analogRead(A0);

  // map the sensor values to a wide range of pitches
  int pitch = map(sensorValue, sensorLow, sensorHigh, 50, 4000);

  // play the tone for 20 ms on pin 8
  tone(8, pitch, 20);

  // wait for a moment
  delay(10);
 
 
}
Att dö för nationalstaten är som att dö för telefonbolaget

3dprinter

Två kompileringsfel - tursamt nog snabbt att ändra
den andra "void setup()" kommenteret ut,
et ställe har du "}{" ändrat til "}"

Du läser från både "sensepin" (som är 0) och från A0 - som är samme pin. Ingen fel, men var det du ville?

Annars tror jag koden funkar. Eller du må forklara vad fel du får.


elof

Stort tack för att du tog dig tid att hjälpa en slarvig nybörjare :) !! Det fungerar! Tack så sjukt mycket och jag ville att båda skulle läsa från samma pin ja. Så effekterna synkas :)


Nu ska jag bara bygga en go switch för att slå på och av allt :) och sen kapsla in det i nått snyggt
Att dö för nationalstaten är som att dö för telefonbolaget

Go Up