RGB led doet niet wat ik wil dat hij doet
13 berichten
• Pagina 1 van 2 • 1, 2
RGB led doet niet wat ik wil dat hij doet
Hey,
Ik heb laatst de arduino starter kit gekocht. Ik vind dit heel leuk om te doen.
Ik heb nu geprobeerd de 'love-o-meter' en de 'color mixing lamp' bij elkaar te voegen. Dit is mijn code: http://pastecloud.net/ASdpE6JRr9
Het werkt wel, alleen het lampje knippert heel erg. Dat komt doordat de temperaturen ineens veel hoger of lager worden, en dan weer normaal. Dit krijg ik uiteindelijk:
Alvast bedankt voor alle hulp!
Ik heb laatst de arduino starter kit gekocht. Ik vind dit heel leuk om te doen.
Ik heb nu geprobeerd de 'love-o-meter' en de 'color mixing lamp' bij elkaar te voegen. Dit is mijn code: http://pastecloud.net/ASdpE6JRr9
Het werkt wel, alleen het lampje knippert heel erg. Dat komt doordat de temperaturen ineens veel hoger of lager worden, en dan weer normaal. Dit krijg ik uiteindelijk:
Alvast bedankt voor alle hulp!
Advertisement
Re: RGB led doet niet wat ik wil dat hij doet
wat voor een sensor gebruik je?
en hoe heb je de sensor aangesloten ?
en hoe zijn de leds aangesloten ?
probeer is om de scale waarde te printen, kijken of die gekke sprongen maakt.
anders print de waarden die uitschrijft met analogWrite()
het is altijd handig om veel serial prints te doen om te kijken hoe iets werkt en als je dingen wil debuggen.
Groet,
Duality
en hoe heb je de sensor aangesloten ?
en hoe zijn de leds aangesloten ?
probeer is om de scale waarde te printen, kijken of die gekke sprongen maakt.
anders print de waarden die uitschrijft met analogWrite()
het is altijd handig om veel serial prints te doen om te kijken hoe iets werkt en als je dingen wil debuggen.
Groet,
Duality
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: RGB led doet niet wat ik wil dat hij doet
Dit zijn toch redelijke metingen moet ik zeggen. Een van de oorzaken dat je meetverschillen krijgt is vaak doordat je er van uit gaat de de voeding exact 5V geeft en constant. Helaas is de waarheid wat anders. De Arduino neemt de 5V als referentie spanning op. Als die wat fluctueert dan krijg je hetzelfde effect op je meting.
Daarnaast heb ik even jouw formule uit de code in Excel gegooid. De berekeningen kloppen precies.
Dus als je meer geleidelijkheid wilt gebruiken zou je bijvoorbeeld het voortschrijdend gemiddelde kunnen nemen over de laatste 10 metingen.
voorbeeld:
cpp code
in de setup()
cpp code
in de loop()
cpp code
Daarnaast heb ik even jouw formule uit de code in Excel gegooid. De berekeningen kloppen precies.
Dus als je meer geleidelijkheid wilt gebruiken zou je bijvoorbeeld het voortschrijdend gemiddelde kunnen nemen over de laatste 10 metingen.
voorbeeld:
cpp code
#define AANTAL_METINGEN 10
float metingen[AANTAL_METINGEN]; // tabel met aantal metingen voor voorschrijdend gemiddelde
uint8_t metingIndex; // verwijzing naar laatste meting in tabel
float som; // som van alle metingen in de tabel
boolean tabelGevuld; // indicatie dat de tabel volledig gevuld is
in de setup()
cpp code
//
// wis metingen in de tabel
//
for (uint8_t i = 0; i < 10; i++) {
metingen[i] = 0;
}
//
// initialiseer parameters
//
tabelGevuld = false;
som = 0;
metingIndex = 0;
in de loop()
cpp code
//
// als je de temperatuur hebt
// eerst de oudste waarde van de som aftrekken
//
som = som - metingen[metingIndex];
//
// voeg de laatste meting toe aan de tabel
//
metingen[metingIndex] = temperature;
//
// nieuwe waarde toevoegen aan de som
//
som = som + metingen[metingIndex];
//
// bepaal het voortschrijdend gemiddelde
//
if (tabelGevuld){
//
// bij een volledig gevulde tabel
//
float gemiddeldeTemperatuur = som / AANTAL_METINGEN;
} else {
//
// als de tabel nog niet vol is
//
float gemiddeldeTemperatuur = som / (metingIndex + 1);
}
//
// verhoog de metingen index
//
metingIndex = metingIndex + 1;
//
// test voor loop around
//
if (metingIndex == AANTAL_METINGEN){
metingIndex = 0;
tabelGevuld = true;
}
Re: RGB led doet niet wat ik wil dat hij doet
Bedankt voor jullie reacties!
Kan je niet gewoon iets doen zoals:
Kan je niet gewoon iets doen zoals:
- Code: Alles selecteren
const int sensorPin = A0; // pin for the temp sensor
const int baselineTemp = 21.0;
float temperatureDifference = 0;
float averageTemperatureDifference = 0;
const int greenLEDPin = 9;
const int redLEDPin = 11;
const int blueLEDPin = 10;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(greenLEDPin, OUTPUT);
pinMode(redLEDPin, OUTPUT);
pinMode(blueLEDPin, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for(int x = 0; x < 10; x+=1){
int sensorValue = analogRead(sensorPin);
float voltage = (sensorValue/1024.0) * 5.0; // changes the value of the temp sensor to a voltage between 0 and 5
float temperature = (voltage - .5) * 100; // changes the voltage to the real temperature
temperatureDifference = temperature - baselineTemp;
averageTemperatureDifference = averageTemperatureDifference + temperatureDifference;
}
averageTemperatureDifference = averageTemperatureDifference / 10;
float temperatureDifference = temperature - baselineTemp; // checks how much degrees celcius the temperature is above the baseLineTemp so everything above the baselinetemp is making the RGB led more red
if(temperatureDifference <= 0){
averageTemperatureDifference = 0;
}else if(temperatureDifference > 10){
averageTemperatureDifference = 10;
}
float scale = averageTemperatureDifference * 2;
analogWrite(redLEDPin, scale * 25); // changes the scale from the temperature to a value that the RGB led can use
analogWrite(blueLEDPin, 250 - (scale * 25));
analogWrite(greenLEDPin, 0);
}
Re: RGB led doet niet wat ik wil dat hij doet
Blijkbaar geeft mijn code nu ineens hele andere resultaten. Ik zou echt niet weten waardoor dat komt, ik heb het ook nog eens getest met de eerdere code die in mijn beginpost staat. Er komen resultaten uit van 400 graden...
Re: RGB led doet niet wat ik wil dat hij doet
Blijkbaar geeft de temperatuur sensor rond de 4.7 volt af. Dat kan natuurlijk niet kloppen.
Is mijn temperatuur sensor kapot o.i.d.?
Is mijn temperatuur sensor kapot o.i.d.?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: RGB led doet niet wat ik wil dat hij doet
Geen idee. Zou kunnen of je hebt ergens iets niet goed verbonden. Als je alles hebt verbonden met die draadjes met de ronde stekkertjes kun je die beter in de vuilnisbak gooien en vervangen voor draadjes met Dupont connectoren(die vierkante). Zijn een bron van storingen en lekker goedkoop waardoor je ze vaak in die kitjes tegenkomt
Re: RGB led doet niet wat ik wil dat hij doet
nicoverduin schreef:Geen idee. Zou kunnen of je hebt ergens iets niet goed verbonden. Als je alles hebt verbonden met die draadjes met de ronde stekkertjes kun je die beter in de vuilnisbak gooien en vervangen voor draadjes met Dupont connectoren(die vierkante). Zijn een bron van storingen en lekker goedkoop waardoor je ze vaak in die kitjes tegenkomt
Ik heb de draadjes vervangen alleen hij geeft nog steeds hetzelfde aan. Heb je enig idee waar het anders aan kan liggen?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: RGB led doet niet wat ik wil dat hij doet
Het zou kunnen dat je sensor defect is. Alles kan natuurlijk. Welke sensor gebruik je?
Re: RGB led doet niet wat ik wil dat hij doet
nicoverduin schreef:Het zou kunnen dat je sensor defect is. Alles kan natuurlijk. Welke sensor gebruik je?
Ik gebruik de TMP36, degene die je bij de arduino starter kit krijgt.
13 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten