ich habe das Problem das sich nur in seinem eigenem Sketch dreht. Füge
ich jedoch den Sketch in einen andren ein funktioniert dieser nicht mehr
und es bewegt sich nur der servo.
motor = 3;
int drehzahl=150;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
analogWrite(motor, drehzahl);
delay(500);
digitalWrite(motor, LOW);
delay(15);
}
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Servo.h>
#define ONE_WIRE_BUS 2
int motor = 3;
int drehzahl=150;
int temp = 50;
Servo myservo;
int pos = 0;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup(void)
{
myservo.attach(9);
Serial.begin(9600);
sensors.begin();
}
void loop(void)
{
sensors.requestTemperatures();
Serial.print("Temperatur ");
Serial.print(sensors.getTempCByIndex(0));
Serial.println(" °C");
delay(10000);
if (sensors.getTempCByIndex(0) >= 30) { //110°C
myservo.write(0);
analogWrite(motor, drehzahl);
delay(10000);
digitalWrite(motor, LOW);
delay(2000);
}
else if (sensors.getTempCByIndex(0) < 25) { //95°C
myservo.write(90);
delay(15);
}
else {
myservo.write(40); //95°C-100°C
delay(15);
}
}
habt ihr eine Idee wie ich diesen programmieren muss damit er auch in
dem Sketch funktioniert?
Hallo Stefan, du schreibst weder was wie passieren soll, hast keinen Stromlaufplan (vereinfachter würde reichen). Dann ist dein Code und der in den du kopieren willst nicht mal kenntlich getrennt. Nur Code zusammenkopieren ist nicht programmieren (dabei ist Arduino echt simpel). Also beschreibe was du machen willst, welches (dein) Code ist und welcher der fremde ist. vielleicht findet sich einer der dich dann in die richtige Richtung schubst... Grüße
der Motor sollte sich bei einer bestimmten Temperatur drehen. Der Servo
fährt in seine Position wenn die Temperatur erreicht ist, doch der Motor
welcher auch in der if Funktion ist dreht sich nicht.
if (sensors.getTempCByIndex(0) >= 30) { //110°C
myservo.write(0);
analogWrite(motor, drehzahl);
delay(10000);
digitalWrite(motor, LOW);
delay(2000);
jedoch kann ich den Motor mit den zeilen
analogWrite(motor, drehzahl);
delay(10000);
digitalWrite(motor, LOW);
delay(2000);
in einem eigenem Sketch schon laufen lassen.
Na da wird ganz einfach die Bedingung für dein IF nicht wahr werden
(ausgelesene Temperatur nicht über 30°C oder doch 110?!?)...
110°C DEC ist 6E; 30 HEX ist 48 DEC
"if (sensors.getTempCByIndex(0) >= 30) { //110°C
myservo.write(0);"
Was ist den im SerialMonitor vom ArduIDE zu sehen welche Temperatur er
vom Sensor bekommt?
Achso und noch was, wohin soll das:
analogWrite(motor, drehzahl);
...
digitalWrite(motor, LOW);
wirken? Du hast nicht mal Pins dafür eingebunden...
Grüße
Schau mal bitte nochmal hier nach und dann wirste sicherlich schon merken was fehlt: https://www.arduino.cc/reference/en/language/structure/sketch/setup/ Besonders, wenn dein Code oben der vollständige ist... Grüße
*Ein Sketch (engl.: Skizze) ist eine kurze komödiantische Szene, die einer reduzierten Handlung folgt und mit einer prägnantenSchlusspointe abschließt. Sie ist stilistisch wie inhaltlich mit Kabarett und Comedy verwandt und kann auch als „ge(schau)spielter Witz“ verstanden werden.* (Quelle Wikipedia.de) SCNR ;-)
Harry schrieb: > *Ein Sketch (engl.: Skizze) ist eine kurze komödiantische Szene, > die > einer reduzierten Handlung folgt und mit einer > prägnantenSchlusspointe abschließt. Sie ist stilistisch wie inhaltlich > mit Kabarett und Comedy verwandt und kann auch als „ge(schau)spielter > Witz“ verstanden werden.* (Quelle Wikipedia.de) > > SCNR ;-) Wow noch einer der "Copy&Paste" kann...aber sonst nix beiträgt.
Harry schrieb: > als „ge(schau)spielter Witz“ verstanden werden. Kein Grund sich zu entschuldigen, passt doch, da der TO die Funktionsweise der einzelnen Sketches nicht verstanden hat ist sein resultierendes compilat ebenfalls ein Sketch geworden, welches sein Programmierveständnis aufdeckte.;) s.c.n.r.2 Namaste
EGS schrieb: > Wow noch einer der "Copy&Paste" kann...aber sonst nix beiträgt. Ja wie Kreativ ist das denn? Namaste
die Pins sind auch eingebunden #include <OneWire.h> #include <DallasTemperature.h> #include <Servo.h> #define ONE_WIRE_BUS 2 int motor = 3; int drehzahl=150;
der servo fährt ja auch wenn die Temperatur unter 25°C ist, heißt die Bedingung ist erfüllt, demnach sollte der Motor sich doch auch drehen.
die // 110°C sind für mich nur eine Hilfestellung damit ich weiß für welche Temperatur die Zeile ist damit ich nicht immer mit dem Feuerzeug den Sensor zum Testen aufheizen muss nehme ich hier die 25°C.
stefan94 schrieb: > die // 110°C sind für mich nur eine Hilfestellung damit ich weiß > für > welche Temperatur die Zeile ist damit ich nicht immer mit dem Feuerzeug > den Sensor zum Testen aufheizen muss nehme ich hier die 30°C.
schau dir mal die schleifen und delays an! bei einem delay wartet das Programm und tut derweil nichts. Am Ende einer schleife springt es an den anfang derselben alles dahinter wird nie ausgeführt. Namaste
Na dann Stefan, Lass uns teilhaben an deiner Erkenntnis. int motor = 3; int drehzahl=150; Sind keine Pin-Definitionen. Du musst dem Kompiler schon mitteilen an welchem Pin was dran ist. Grüße
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.