Motor dreht sich nur im eingenem sketch

Gast #5338525
Lesenswert?

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?
Gast #5338557
Lesenswert?

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
Gast #5338563
Lesenswert?

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.
Gast #5338579
Lesenswert?

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
Gast #5338587
Lesenswert?

*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 ;-)
Gast #5338592
Lesenswert?

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.
Gast #5338625
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren