Temperatuur dmv Servo

Arduino specifieke Software
Berichten: 2
Geregistreerd: 02 Jan 2013, 16:15

Temperatuur dmv Servo

Berichtdoor NGAFD » 02 Jan 2013, 16:24

Hallo iedereen,

Ik ben bezig met een projectje waarmee ik de temperatuur via een tmp36 meet en met de uitkomst hiervan de positie van een servo bepaal. Deze servo werkt dus als een soort wijzer die de temperatuur aangeeft. Het probleem is dat de servo niet reageert op temperatuur maar wel mooi beweegt als ik een potentiometer plaats op de plek van de tmp36. Om alles duidelijk te maken voeg ik mijn code en een afbeelding van de setup toe aan dit bericht.

Alvast bedankt!

Afbeelding

Code: Alles selecteren
//TMP36 Pin Variables
int sensorPin = 0;      //the analog pin the TMP36's Vout (sense) pin is connected to
                        //the resolution is 10 mV / degree centigrade with a
                        //500 mV offset to allow for negative temperatures
#include <Servo.h>
 
Servo myservo;  // create servo object to control a servo
int val;    // variable to read the value from the analog pin
 
/*
 * setup() - this function runs once when you turn your Arduino on
 * We initialize the serial connection with the computer
 */
void setup()
{
  Serial.begin(9600);  // Start the serial connection with the computer
                       // to view the result open the serial monitor                     
  myservo.attach(9);   // attaches the servo on pin 9 to the servo object
 
}
 
void loop()                     // run over and over again
{
 //getting the voltage reading from the temperature sensor
 int reading = analogRead(sensorPin); 
 
 // converting that reading to voltage, for 3.3v arduino use 3.3
 float voltage = reading * 5.0;
 voltage /= 1024.0;

 // now print out the temperature
 float temperatureC = (voltage - 0.5) * 100 ;  //converting from 10 mv per degree wit 500 mV offset
                                               //to degrees ((volatge - 500mV) times 100)
 Serial.print(temperatureC); Serial.println(" Graden Celcius");
 

 delay(1000);                                     //waiting a second
 
 val = analogRead(sensorPin);         // reads the value of the potentiometer (value between 0 and 1023)
 val = map(val, 0, 1023, 0, 179);      // scale it to use it with the servo (value between 0 and 180)
 myservo.write(val);                  // sets the servo position according to the scaled value
 delay(5);                           // waits for the servo to get there
}


Advertisement

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Temperatuur dmv Servo

Berichtdoor Rudi » 02 Jan 2013, 17:02

Krijg je op de monitor wel temperatuurwaarden? Indien ja dan ben je al zeker dat de TMP36 goed is aangesloten.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Berichten: 2
Geregistreerd: 02 Jan 2013, 16:15

Re: Temperatuur dmv Servo

Berichtdoor NGAFD » 02 Jan 2013, 17:06

Jazeker, dit krijg ik: Afbeelding

Ik denk zelf dat het hem in het laatste stuk zit, maar dat weet ik niet zeker.

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: Temperatuur dmv Servo

Berichtdoor pjh » 02 Jan 2013, 19:42

De TMP36 sensor gaat van -40 tot 125 graden celcius.
Deze 165 graden verdeel je over 180 graden op de servo.
Dus ongeveer één graad beweging per graad Celsius.
Misschien doet hij het wel, maar zie je het niet?

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Temperatuur dmv Servo

Berichtdoor Rudi » 02 Jan 2013, 20:52

pjh schreef:Misschien doet hij het wel, maar zie je het niet?


Is ook mijn gedacht.
Als je de TMP36 vervangt door een potentiometer van 10K (met zijn loper op A0) dan zou je de extreme temperatuurverschillen kunnen nabootsen en bijgevolg je servo arm moeten zien bewegen.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Temperatuur dmv Servo

Berichtdoor Rudi » 03 Jan 2013, 11:24

NGAFD schreef:Het probleem is dat de servo niet reageert op temperatuur maar wel mooi beweegt als ik een potentiometer plaats op de plek van de tmp36.


Maar je had het zelf al gedaan lees ik nu :o :)
Ik denk dat je hem "gevoeliger" kan maken door de mapping aan te passen?
Pure gok, ben zelf nog maar een weekje met C++ bezig :
val = map(val, 200, 500, 0, 179);
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Google [Bot] en 23 gasten