Ви не увійшли.
Всем спасибо, в Proteus всё заработало как надо...
Финальный код:
const int relayPin = 0;
const int onPin = 1;
const int offPin = 2;
int relayState = 0;
int lastRelayState = 0;
void setup() {
  pinMode(relayPin, INPUT);
  pinMode(onPin, OUTPUT);
  pinMode(offPin, OUTPUT);
}
void loop() {
  relayState = digitalRead(relayPin);
  if (relayState != lastRelayState) {
    if (relayState == HIGH) {
      digitalWrite(onPin, HIGH);
      delay (1500);
      digitalWrite(onPin, LOW);
    } else {
      digitalWrite(offPin, HIGH);
      delay (1500);
      digitalWrite(offPin, LOW);
    }
  }
  lastRelayState = relayState ;
}Спасибо, что навели на мысль...
Идея понята правильно, а на мелкие косяки укажет компилятор.
Удачи!
Сигнал будет постоянньім - или есть или нет... Програмка должна следить за состояние сигнала на входному пине, и менять состояние вьіходньіх пинов (иипульсом) в зависимости от входа.
А сколько будет подаваться с реле сигнал ?
Так должно работать, доберусь до proteus'a, проверю:
const int relayPin = 1; 
const int onPin = 2; 
const int offPin = 3;
int  = 0;
int lastRelayState = 0;
void setup() { 
    pinMode(relayPin, INPUT);
    pinMode(onPin, OUTPUT);
    pinMode(offPin, OUTPUT); 
    } 
    
    void loop() {
    relayState = digitalRead(relayPin); 
  if (relayState != lastRelayState){
    if (relayState == HIGH) { 
    digitalWrite(onPin, HIGH);
     delay (1500);
     digitalWrite(onPin, LOW); 
    } else { 
    digitalWrite(offPin, HIGH);
     delay (1500); 
    digitalWrite(offPin, LOW); } }
  lastRelayState = relayState    
    }
Следует добавить ещё одну переменную, в которой запоминать текущее состояние relayPin.
Импульс формировать только тогда, когда значение relayPin изменилось.
Привет, пишу тут маленькую програмку для arduino digispark. Суть такая: при подаче на PB0 постоянного напряжения 5В (5В подаеться через контакты реле), на выходе PB1 должен появиться импульс 5В длительностю 1,5 сек (через транзисторный ключ и реле управляю актуатором от центрального замка - замок должен закрытьса ); при переключении PB0 на низкий уровень (размыкании реле и подтяжка к земле через 10к) на на выходе PB2 должен появиться импульс 5В длительностю 1,5 сек. (через транзисторный ключ и реле - замок должен открытьса).
Схемка в Proteus и код в архиве...
sketch_blink.rar
const int relayPin = 1;
const int onPin = 2;
const int offPin = 3;
int relayState = 0;
void setup() {
  // put your setup code here, to run once:
pinMode(relayPin, INPUT);
pinMode(onPin, OUTPUT);
pinMode(offPin, OUTPUT);
}
void loop() {
  // put your main code here, to run repeatedly:
relayState = digitalRead (relayPin);
  if (relayState == HIGH) {
 digitalWrite(onPin, HIGH);
 delay (1500);
 digitalWrite(onPin, LOW);
} else {
  digitalWrite(offPin, HIGH);
  delay (1500);
  digitalWrite(offPin, LOW);
}
}