Hallo,
ich habe versucht einen Servomotor mittels eines Temperatursensors zu
steuern. Ich dachte mir damit mein Code übersichtlicher wird schreibe
ich zur Bewegung des Motors eine eigene Klasse die von der Servo Klasse
abgeleitet wird. Allerdings macht der Servo nicht das was er soll.
Jedoch wenn ich genau den selben Code im Hauptprogramm schreibe verhält
er sich normal und tut was er soll. Woran könnte das liegen?
Haupt-Quelldatei:
1 | #ifndef _SERVO_H_
|
2 | #define _SERVO_H_
|
3 | #include <Servo.h>
|
4 | #endif
|
5 |
|
6 | #include <Temperatur.h>
|
7 | #include <Bewegung.h>
|
8 |
|
9 | Bewegung servo(9);
|
10 | Temperatur temp(0);
|
11 | float voltage, degreesC;
|
12 |
|
13 | void setup() {
|
14 | // put your setup code here, to run once:
|
15 | Serial.begin(9600);
|
16 | }
|
17 |
|
18 | void loop() {
|
19 | // put your main code here, to run repeatedly:
|
20 |
|
21 | voltage = temp.GetVoltage();
|
22 |
|
23 | degreesC = temp.GetDegree();
|
24 |
|
25 |
|
26 | Serial.print("Temperatur: ");
|
27 | Serial.println(degreesC);
|
28 | Serial.print("Voltage: ");
|
29 | Serial.println(voltage);
|
30 | delay(500);
|
31 |
|
32 | servo.Abfrage(degreesC);
|
33 |
|
34 |
|
35 | }
|
36 |
|
37 | /*
|
38 | void MoveRight(){
|
39 | for(int i = aktuellePos; i > geschlossen; i -= 2){
|
40 | servo1.write(i);
|
41 | delay(20);
|
42 | }
|
43 | servo1.write(offen);
|
44 | aktuellePos = offen;
|
45 | }
|
46 |
|
47 | void MoveLeft(){
|
48 | for(int i = 0; i < offen; i += 2){
|
49 | servo1.write(i);
|
50 | delay(20);
|
51 | }
|
52 | servo1.write(geschlossen);
|
53 | aktuellePos = geschlossen;
|
54 | }
|
55 |
|
56 | */
|
57 | /*
|
58 | float Degree(float voltage){
|
59 | return ((voltage - 0.5) * 100);
|
60 | }
|
61 |
|
62 | float getVoltage(int Pin){
|
63 | return (analogRead(Pin)* 0.004882814);
|
64 | }*/
|
Danke schon mal im voraus