Robin2:
This is not a very good description.
I presume you are NOT saying that digitalWrite(EngineON, LOW) actually makes the output HIGH?
I presume you do have pinMode() before digitalWrite()
So are you saying that the pin can be HIGH before the digitalWrite() takes effect?
...R
its true that digitalWrite(EngineON, LOW) makes output high - it seems to be swithed: digitalWrite low makes HIGH and digitalWrite high makes LOW. i dont know why. but main question is how to set pin low after turning arduino on.
here is a code:
#include <Servo.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 /-(Connect to Pin 2 )-/
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);
int temp;
int EngineON = 11;
int Elektr = 12;
int state;
int bt;
int srv=13;
boolean stA=0;
boolean stD=0;
Servo myservo;
int pos = 90;
void setup() {
myservo.attach(13); // initialize the digital pin as an output.
pinMode(srv, OUTPUT);
pinMode(EngineON, OUTPUT);
pinMode(Elektr, OUTPUT);
Serial1.begin(9600); // initialize serial communication at 9600 bits per second:
sensors.begin(); //( Start up the DallasTemperature library )
}
void loop() {
if (Serial1.available() > 0){
state = Serial1.read(); }
sensors.requestTemperatures();
temp = sensors.getTempCByIndex(0);
Serial1.write(temp);
if (state == '3') {
digitalWrite(EngineON, HIGH);} // rozrusznik on 11
else if (state == '2') {
digitalWrite(EngineON, LOW);} // rozrusznik off 11
else if (state == '5') {
digitalWrite(Elektr, HIGH);} // wyłaczenie 12
else if (state == '1') { // zapłon ssanie 12
digitalWrite(Elektr, LOW);
if (state == '4') {
if (state == 'a') {
pos=pos+2;
myservo.write(pos);
delay(15);
}
else if (state == 'b') {
pos=pos-2;
myservo.write(pos);
delay(15);
}
}
else {
sensors.requestTemperatures();// start temperatury // Send the command to get temperatures
Serial.print(sensors.getTempCByIndex(0));
Serial.println(" Degrees C");
temp = sensors.getTempCByIndex(0);}
if (temp < 28) {
pos=0;
myservo.write(pos);}
else if (temp > 28 && temp < 50) {
pos=36;
myservo.write(pos);}
else if (temp > 50 && temp < 75) {
pos=72;
myservo.write(pos);}
else if (temp > 75 && temp < 100) {
pos=108;
myservo.write(pos);}
else if (temp > 100 && temp < 150) {
pos=144;
myservo.write(pos);}
else if (temp > 150) {
pos=180;
myservo.write(pos);}
// koniec temperatury
}
delay(100);
}
// wait for 100ms