LED van 0% naar 100%
5 berichten
• Pagina 1 van 1
LED van 0% naar 100%
Hallo,
Voor school heb ik een opdracht waarin ik 3 LED's een output moet bieden van als het ware 0% tot 100%.
Laten we eerst eens met 1 LED beginnen.
Ik maak gebruik van een potmeter die geleidelijk 0 tot 5 V weergeeft. Het lukt me om van 0 tot 5V de LED geleidelijk te laten op lopen van 0% tot 100%. Echter is het de opdracht om de eerste LED van dit te doen met een input van 0 tot 2,5V.
Zo gezegt zo gedaan gebruik ik de map fucntie:
ingang = map (ingang, 0, 512, 0, 255);
Maar als ik nu dus nu verder draai als heb begint hij weer van voor af aan. 2,6V = 0%, 5V = 100%.
Dit mag niet gebeuren. Hoe kan ik dit oplossen?
Voor school heb ik een opdracht waarin ik 3 LED's een output moet bieden van als het ware 0% tot 100%.
Laten we eerst eens met 1 LED beginnen.
Ik maak gebruik van een potmeter die geleidelijk 0 tot 5 V weergeeft. Het lukt me om van 0 tot 5V de LED geleidelijk te laten op lopen van 0% tot 100%. Echter is het de opdracht om de eerste LED van dit te doen met een input van 0 tot 2,5V.
Zo gezegt zo gedaan gebruik ik de map fucntie:
ingang = map (ingang, 0, 512, 0, 255);
Maar als ik nu dus nu verder draai als heb begint hij weer van voor af aan. 2,6V = 0%, 5V = 100%.
Dit mag niet gebeuren. Hoe kan ik dit oplossen?
Advertisement
Re: LED van 0% naar 100%
Dit is het complete programma tot nu toe:
cpp code
cpp code
int uitgang3 = 3;
void setup()
{
Serial.begin(9600);
pinMode(uitgang3, OUTPUT);
}
void loop()
{
int sensorWaarde = analogRead(A1);
Serial.println(sensorWaarde);
float spanning = sensorWaarde * (5.0 / 1023.0);
spanning = map(sensorWaarde, 0, 512, 0, 255);
analogWrite(uitgang3, spanning);
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: LED van 0% naar 100%
Als je stelt dat je alleen iets wil doen met de waardes van 0..2.5V, dan moet je met een if(...) statement de rest gewoon negeren of op de hoogste waarde laten
Re: LED van 0% naar 100%
En de map functie gewoon weglaten.
Je krijgt een waarde van 0..1023 voor je sensorWaarde
1)
Je kunt deze simpel delen door 4 om een waarde van 0..255 te krijgen; dit is alleen om je te tonen dat je niet altijd de map functie nodig hebt.
2)
Voor je probleem, 2.5V is de helft van 5V, dus een sensorWaarde van 512 representeert 2.5V.
Als de map functie niet doet wat je verwacht, moet je proberen te begrijpen hoe deze werkt. Op een Windows machine kun je deze vinden in C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WMath.cpp.
Kun je weer wat verder puzzelen
Tussen twee haakjes, er zijn 1024 stappen in een 10-bit ADC, dus moet je delen door 1024 en niet door 1023.
Je krijgt een waarde van 0..1023 voor je sensorWaarde
1)
Je kunt deze simpel delen door 4 om een waarde van 0..255 te krijgen; dit is alleen om je te tonen dat je niet altijd de map functie nodig hebt.
2)
Voor je probleem, 2.5V is de helft van 5V, dus een sensorWaarde van 512 representeert 2.5V.
Als de map functie niet doet wat je verwacht, moet je proberen te begrijpen hoe deze werkt. Op een Windows machine kun je deze vinden in C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WMath.cpp.
Kun je weer wat verder puzzelen
Tussen twee haakjes, er zijn 1024 stappen in een 10-bit ADC, dus moet je delen door 1024 en niet door 1023.
Re: LED van 0% naar 100%
oke tukker je begin is er prima, en ja waar je nu tegen aanloopt is heel normaal, je moet elke input gaan limiteren, zodat je programma alleen correcte waarden krijgt.
dus min en max gebruiken.
verder zet er even een delay in zolang je an het testen bent en serial.print gebruikt, want anders loopt het arduino.
dus min en max gebruiken.
verder zet er even een delay in zolang je an het testen bent en serial.print gebruikt, want anders loopt het arduino.
paul deelen
shooter@home.nl
shooter@home.nl
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Google [Bot] en 29 gasten