Kolego.
Jeśli podłączasz to pod micre , to zapewne masz już przy niej zasilanie 12 v . które możesz wykorzystać do zasilania innego układu , np: można zbudować dwa układy opóżniające załączenie przekażnika , np kit NE 085( układ opóżniania zał. głośników , prosty schemat w sieci ) i podłączając każdy układ z osobna , zasilając go 12 v. przez osobny kontaktron w typie NC , a obwód przekażnika tych układów , podpinasz pod wej. micry .
Drugim sposobem jest montaż przy micrze np: arduino Uno (Jej zasilanie bierzesz albo 230v i przez zasilacz na 12 v , lub bezpośrednio z micry12v ) i wgranie do niego kodu , który zamieszczam poniżej , wystarczy jeden kontaktron i masz też pełną kontrole , nad modyfikacją czasów .
/* układ który będzie liczył impulsy (obroty silnika)
i jeśli impulsów nie będzie to na jednym z wyjść pojawi
się ostrzezenie(stan wysoki), a potem alarm ( stan wysoki).*/
/*
WEJ. 2 - kontaktron przez typ INPUT_PULLUP
WYJ. 4 - podłączony buzzer prealarm.
WYJ. 5 - podłączony przekaznik zwierajacy styki wejscia w micrze (ALARM)
WYJ. 7 - LED stan O.K. */
// Odczyt obrotów (RPM)
int guzik = 0; //Utworzenie zmiennej RPM (obroty)
unsigned long ostatniemillis = 0;
unsigned long ostatniemillis2 = 0;
void guziksilnika()
{ guzik++;}
void setup() {
pinMode(2, INPUT_PULLUP); // kontaktron
pinMode(4,OUTPUT); //buzzer
pinMode(5,OUTPUT); //przekażnik arduino
pinMode(7,OUTPUT); //dioda LED
attachInterrupt(0, guziksilnika, CHANGE);//wej. 2,change- reaguje na zmiane stanu guzika
}
void loop()
{
{
if (millis() - ostatniemillis >= 2000) // czas w którym mają być dane impulsy
{
ostatniemillis = millis();
if ((guzik== 0))//jesli silnik stoi
{
digitalWrite(4, HIGH);
}
else
{
digitalWrite(4, LOW);
}
if ((guzik>= 1) )//jesli silnik chodzi
{
digitalWrite(7, HIGH);
digitalWrite(5, LOW);
ostatniemillis2 = 0;
ostatniemillis2 = millis();
}
else
{
digitalWrite(7, LOW);
}
guzik=0;
}
}
/////--------------------------------------------------------
/// czas 13000 można sobie dowolnie zmieniać i obliczyć zał. 5
{
if (millis() - ostatniemillis2 >= 13000) //13000-2000=11000 ms.(11s.) po tm czasie załączy się alarm
{
ostatniemillis2 = millis();
if ((guzik== 0) )
{
digitalWrite(5, HIGH);
}
else
{
digitalWrite(5, LOW);
}
}
}
}