Project 19 Dimmen van Lamp

1. Beschrijving

De dimlamp past de helderheid van een LED aan via een potentiometer en een Arduino-controller. De helderheid is afhankelijk van de weerstandwaarde, die kan worden uitgelezen en aangepast door de uiteinden van de potentiometer te verbinden met digitale of analoge pinnen op het bord. Bovendien wordt dit systeem toegepast om de spanning of stroom van andere apparaten zoals ventilatoren, lampen en verwarmingselementen te regelen.

2. Werking

In wezen is een potentiometer een element dat de waarde van de weerstand kan veranderen. Volgens de wet van Ohm (U=I*R) beïnvloedt de weerstand de spanning. Onze potentiometer is 10K.

In dit project is de maximale weerstand 10K. Het ESP32-bord verdeelt de spanning van 3V gelijkmatig in 4095 delen (3/4095=0.0007326007326). De analoge spanning wordt verkregen door de uitgelezen waarde te vermenigvuldigen met 0.0007326007326.

3. Aansluitschema

4. Testcode

/*
  keyestudio ESP32 Inventor Learning Kit  
   Project 19.1 Dimming Lamp
  http://www.keyestudio.com
*/
int pot = 34;      //Define variable pot to IO34

void setup() 
{
  // put your setup code here, to run once:
  Serial.begin(9600);		//Set baud rate to 9600
}

void loop() 
{
  // put your main code here, to run repeatedly:
  int value = analogRead(pot);	//Read io34 and assign it to the variable value
  Serial.println(value);		//Print the variable value and wrap it around 
  delay(200);
}

5. Testresultaat

Na het aansluiten van de bedrading en het uploaden van de code, open je de seriële monitor en stel je de baudrate in op 9600. De analoge waarde wordt weergegeven binnen het bereik van 0-4095. Door aan de potentiometer te draaien, verandert de grootte van de analoge waarde.

6. Kennisuitbreiding

We zullen de helderheid van de LED regelen via een potentiometer. Zoals we weten, wordt dit beïnvloed door PWM. Echter, het bereik van de analoge waarde is 0-4095 terwijl dat van PWM 0-255 is. Daarom is een functie “map(value, fromLow, fromHigh, toLow, toHigh)” nodig.

Aansluitschema:

Code:

/*
  keyestudio ESP32 Inventor Learning Kit  
   Project 19.2 Dimming Lamp
  http://www.keyestudio.com
*/
int led = 25;		//Define LED to IO25
int pot = 34;		//Define pot to IO34

void setup() 
{
  // put your setup code here, to run once:
  pinMode(led,OUTPUT);		//Set LED pin to output 
}

void loop() 
{
  // put your main code here, to run repeatedly:
  int value = analogRead(pot);
  int led_val = map(value,0,4095,0,255);  //Convert the range of potentiometer analog value to the range we need  
  analogWrite(led,led_val);
}

7. Testresultaat

Na het succesvol uploaden van de code zal het draaien aan de potentiometer de helderheid van de rode LED veranderen.