-
Постов
980 -
Зарегистрирован
-
Победитель дней
52
Тип контента
Профили
Форумы
Календарь
Сообщения, опубликованные Maximus
-
-
пример код программы, чтобы его спрятать я пишу (spoiler)внутри векст(/spoiler) - только скобки квадратные!
А должен быть способ попроще!
пример-
#include <LiquidCrystal.h>
#include <LiquidCrystalRus.h>
LiquidCrystalRus lcd(6, 7, 5, 4, 3, 2);
int state=0;
int state2=0;
int state3=0;
int state4=0;
int state5=0;
int avaria=0;
int avaria2=0;
int avaria3=0;
int avaria4=0;
int ustanovka=0;
int ustanovka2=0;
int ustanovka3=0;
int ustanovka4=0;
long previousMillis = 0;
long previousMillis2 = 0;
long previousMillis3 = 0;
long previousMillis4 = 0;
long previousMillis5 = 0;
int obriv = 0;
int obriv2 = 0;
int obriv3 = 0;
int obriv4 = 0;
#include <EEPROM.h>
int dveknopky=0;
int predustanovka=0;
int regim=1;
int eeprom=0;
int knopka=0;
int knopka2=0;
int knopka3=0;
int analog=0;
int analog2=0;
int analog3=0;
int analog4=0;
int sek=0;
int sek2=0;
int sek3=0;
int sek4=0;
int flag1=0;
int flag2=0;
int flag3=0;
int flag4=0;
void setup()
{
pinMode(14,INPUT);
pinMode(15,INPUT);
pinMode(16,INPUT);
pinMode(17,INPUT);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
lcd.begin(16, 2);
pinMode(19,INPUT);
pinMode(18,INPUT);
pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
}
void loop()
{
if (millis() -previousMillis5 >=100)
{
previousMillis5 = millis();
state5=!state5;
if(state5==1)
{
lcd.clear();
}
}
if(eeprom==0)
{
regim=EEPROM.read(0);
eeprom=1;
}
if(digitalRead(19)==HIGH&&digitalRead(18)==HIGH&&knopka3==0)
{
knopka3=1;
}
if(digitalRead(19)==LOW&&digitalRead(18)==LOW&&knopka3==1)
{
dveknopky=dveknopky+1;
if(dveknopky>1)
{
dveknopky=0;
}
if(dveknopky<0)
{
dveknopky=1;
}
knopka3=0;
delay(500);
}
if(dveknopky==1)
{
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
lcd.setCursor(2,1);
lcd.print("Заблокирована");
lcd.setCursor(4,0);
lcd.print("Система");
}
else
{
if(analogRead(14)<=1010&&analogRead(15)<=1010&&analogRead(16)<=1010&&analogRead(17)<=1010)
{
if(digitalRead(19)==HIGH&&knopka==0)
{
knopka=1;
avaria=0;
}
if(digitalRead(19)==LOW&&knopka==1)
{
knopka=0;
regim=regim+1;
if(regim>3)
{
regim=3;
}
EEPROM.write(0,regim);
sek=0;
}
if(digitalRead(18)==HIGH&&knopka2==0)
{
knopka2=1;
avaria=0;
}
if(digitalRead(18)==LOW&&knopka2==1)
{
knopka2=0;
regim=regim-1;
if(regim<1)
{
regim=1;
}
EEPROM.write(0,regim);
sek=0;
}
if(regim==1)
{
predustanovka=300;
if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0)
{
lcd.setCursor(4,0);
lcd.print("нижний");
}
}
if(regim==2)
{
predustanovka=600;
if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0)
{
lcd.setCursor(4,0);
lcd.print("средний");
}
}
if(regim==3)
{
predustanovka=900;
if(avaria==0&&avaria2==0&&avaria3==0&&avaria4==0)
{
lcd.setCursor(4,0);
lcd.print("верхний");
}
}
if(flag1==1)
{
if (millis() -previousMillis >=500)
{
previousMillis = millis();
state=!state;
if(state==1)
{
sek++;
}
if(sek>=30)
{
sek=30;
}
}
}
analog=analogRead(14);
if(analog>999)
{
analog=999;
}
if(analog<100)
{
analog=100;
}
if(analog>(predustanovka+5)&&sek>=3)
{
flag1=1;
if(sek<30)
{
digitalWrite(13,LOW);
digitalWrite(0,HIGH);
}
else
{
avaria=1;
digitalWrite(13,LOW);
digitalWrite(0,LOW);
}
}
if(analog>=(predustanovka-10)&&analog<=(predustanovka+10))
{
ustanovka=1;
avaria=0;
flag1=0;
digitalWrite(0,LOW);
digitalWrite(13,LOW);
sek=0;
}
else
{
ustanovka=0;
flag1=1;
}
if(analog<(predustanovka-5)&&sek>=3)
{
flag1=1;
if(sek<30)
{
digitalWrite(0,LOW);
digitalWrite(13,HIGH);
}
else
{
avaria=1;
digitalWrite(0,LOW);
digitalWrite(13,LOW);
}
}
if(flag2==1)
{
if (millis() -previousMillis2 >=500)
{
previousMillis2 = millis();
state2=!state2;
if(state2==1)
{
sek2++;
}
if(sek2>=30)
{
sek2=30;
}
}
}
analog2=analogRead(15);
if(analog2>999)
{
analog2=999;
}
if(analog2<100)
{
analog2=100;
}
if(analog2>(predustanovka+5)&&sek2>=3)
{
flag2=1;
if(sek2<30)
{
digitalWrite(12,LOW);
digitalWrite(1,HIGH);
}
else
{
avaria2=1;
digitalWrite(12,LOW);
digitalWrite(1,LOW);
}
}
if(analog2>=(predustanovka-10)&&analog2<=(predustanovka+10))
{
ustanovka2=1;
avaria2=0;
flag2=0;
digitalWrite(1,LOW);
digitalWrite(12,LOW);
sek2=0;
}
else
{
ustanovka2=0;
flag2=1;
}
if(analog2<(predustanovka-5)&&sek2>=3)
{
flag2=1;
if(sek2<30)
{
digitalWrite(1,LOW);
digitalWrite(12,HIGH);
}
else
{
avaria2=1;
digitalWrite(1,LOW);
digitalWrite(12,LOW);
}
}
if(flag3==1)
{
if (millis() -previousMillis3 >=500)
{
previousMillis3 = millis();
state3=!state3;
if(state3==1)
{
sek3++;
}
if(sek3>=30)
{
sek3=30;
}
}
}
analog3=analogRead(16);
if(analog3>999)
{
analog3=999;
}
if(analog3<100)
{
analog3=100;
}
if(analog3>(predustanovka+5)&&sek3>=3)
{
flag3=1;
if(sek3<30)
{
digitalWrite(11,LOW);
digitalWrite(8,HIGH);
}
else
{
avaria3=1;
digitalWrite(11,LOW);
digitalWrite(8,LOW);
}
}
if(analog3>=(predustanovka-10)&&analog3<=(predustanovka+10))
{
ustanovka3=1;
avaria3=0;
flag3=0;
digitalWrite(8,LOW);
digitalWrite(11,LOW);
sek3=0;
}
else
{
ustanovka3=0;
flag3=1;
}
if(analog3<(predustanovka-5)&&sek3>=3)
{
flag3=1;
if(sek3<30)
{
digitalWrite(8,LOW);
digitalWrite(11,HIGH);
}
else
{
avaria3=1;
digitalWrite(8,LOW);
digitalWrite(11,LOW);
}
}
if(flag4==1)
{
if (millis() -previousMillis4 >=500)
{
previousMillis4 = millis();
state4=!state4;
if(state4==1)
{
sek4++;
}
if(sek4>=30)
{
sek4=30;
}
}
}
analog4=analogRead(17);
if(analog4>999)
{
analog4=999;
}
if(analog4<100)
{
analog4=100;
}
if(analog4>(predustanovka+5)&&sek4>=3)
{
flag4=1;
if(sek4<30)
{
digitalWrite(10,LOW);
digitalWrite(9,HIGH);
}
else
{
avaria4=1;
digitalWrite(10,LOW);
digitalWrite(9,LOW);
}
}
if(analog4>=(predustanovka-10)&&analog4<=(predustanovka+10))
{
ustanovka4=1;
avaria4=0;
flag4=0;
digitalWrite(9,LOW);
digitalWrite(10,LOW);
sek4=0;
}
else
{
ustanovka4=0;
flag4=1;
}
if(analog4<(predustanovka-5)&&sek4>=3)
{
flag4=1;
if(sek4<30)
{
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
}
else
{
avaria4=1;
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
}
if(ustanovka==1&&ustanovka2==1&&ustanovka3==1&&ustanovka4==1)
{
lcd.setCursor(3,1);
lcd.print("Установлен");
}
else
{
if(avaria==1||avaria2==1||avaria3==1||avaria4==1)
{
delay(1000);
lcd.setCursor(5,0);
lcd.print("АВАРИЯ");
lcd.setCursor(3,1);
lcd.print(!avaria);
lcd.setCursor(6,1);
lcd.print(!avaria2);
lcd.setCursor(9,1);
lcd.print(!avaria3);
lcd.setCursor(12,1);
lcd.print(!avaria4);
}
else
{
lcd.setCursor(1,1);
lcd.print(analog);
lcd.setCursor(5,1);
lcd.print(analog2);
lcd.setCursor(9,1);
lcd.print(analog3);
lcd.setCursor(13,1);
lcd.print(analog4);
}
}
}
else
{
if(analogRead(14)>=1010)
{
obriv=0;
delay(1000);
}
else
{
obriv=1;
}
if(analogRead(15)>=1010)
{
obriv2=0;
delay(1000);
}
else
{
obriv2=1;
}
if(analogRead(16)>=1010)
{
obriv3=0;
delay(1000);
}
else
{
obriv3=1;
}
if(analogRead(17)>=1010)
{
obriv4=0;
delay(1000);
}
else
{
obriv4=1;
}
lcd.setCursor(2,0);
lcd.print("ОБРЫВ ДАТЧИКА");
lcd.setCursor(3,1);
lcd.print(obriv);
lcd.setCursor(6,1);
lcd.print(obriv2);
lcd.setCursor(9,1);
lcd.print(obriv3);
lcd.setCursor(12,1);
lcd.print(obriv4);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(8,LOW);
digitalWrite(12,LOW);
digitalWrite(1,LOW);
digitalWrite(13,LOW);
digitalWrite(0,LOW);
}
}
}
-
-
Для отключения доп ресиверов взял вот такие клапана
Подробнее о наборе NT8078 DC12V на сайте Мастер-КитЭлектромагнитный клапан предназначен для включения или выключения подачи жидкости в трубопроводе.
Широкое применение клапан может найти в системах «умный дом» (например в составе BM8039D)., домашней автоматике, дачных бассейнах, системах автоматического полива, аквариумах и т.п.
Технические характеристики:
Номинальное напряжение питания, В +12
Разброс напряжение питания от номинального, % +/- 10
Мощность катушки, Вт 5
Сопротивление изоляции при DC500В, Мом >100
Состояние клапана при отсутствии питания НЗ
Материал корпуса металл
Рабочее давление, MPa 0.02-0.8
Пропускная способность клапана при 0.8 MPa 25 L/min
Кратковременное максимальное давление, MPa 1.2
Диаметр подводки ½“
Рабочая температура жидкости, С 0-130
Габариты клапана, мм 75,4х90,3брал тут, пластиковые вообще копейки стоят, и их можно объединять в блоки..Но мне почему то кажется что для общения подушки с доп-ресивером нужно проходное побольше -
Как быстро делать скрытый текст или картинку? А то не удобно вручную дописывать код
-
-
Это запросто, сейчас поищу!
-
Можно и с стопорным кольцом, но я опасался люфта, та и так красивее
опорник для подушки просто одевается на шток, стрелочка как-раз показывает на переходную втулку, так как внутренний диаметр подшипника 30мм, а шток 20мм
-
-
Мой вариант опоры использует два опорных подшипника, 1-й опорник для штока (как на большинстве легковых авто), 2-й - я использовал для подушки (Подшипник шкворни Г-53,ЗИЛ-5301 опорный 98206)!
Деталь с опорным подшипником (для штока) вставляется в резиновый демпфер. Демпфер- в родную опору с полусферой! Полусфера диаметром 70мм, сталь толщиной в 3мм!
В результате шток у меня держит подшипник, на который в других авто упирается вся стойка, а подушка упирается на подшипник шкворня от грузовика
В общем слабым местом моя опора точно не будет, тонны полторы думаю выдержит, а самое главное оба подшипника изолированны от кузова толстым-толстым слоем резины, и при повороте руля подушка свободно наклоняется вместе со всей стойкой, а руль можно крутить мизинцем!
взяв за основу полусферу из такой опоры и резиновый демпфер, можно сделать опору на любой автомобиль, этому способствует малый диаметр изделия, а переворачивая деталь с опорником для штока можно занизить или наоборот поднять авто не укорачивая шток амортизатора!!!
мне нужно было получить минус 6-7см от штока, что и мне удалось!
Такая резинка на экзисте стоит 4$ и опора гдето столько же! самая дорогая деталь это которую точил токарь 30$ за пару отдал, ну и подшипники по 2,5$
-
-
-
-
Я хомут делал четко по диаметру стоки, только с каждой половинки хомута на концах снял по 1мм на утяжку, но у меня хомут по другому затягивается! имхо- если делать как нарисовал @Admin, то, по 0,5мм с каждой стороны полумесяца,смахнуть, будет достаточно!
-
-
-
Ок, лишнее подчистил!
-
Прикольно! Ждем полный фото-отчет!
Тему подправлю на Пневмоподвеска на BMW E46, не против? Не все в моделях БМВ шарятА чего поршни такие короткие? На Е46 не макферсон? Или исключительно занижение будет?
-
И просматривающих страницу не видно....
-
А куда делись флажки и города, марки авто из подписи под аватаркой?
-
хватит! Особенно если 2х амперный взять, то он и без радиатора холодным будет!
-
@kapitan-komandor, Всё верно! Но если это всё мутится чтобы использовать ДПДЗ и вольтметр, то можно и без радиатора, нагрузки как таковой нет!
-
-
Я же писал про светодиодный индикатор 4х контурный тут! Всё работает отлично, само подкачивает до нужного уровня! В статике показание точные, когда едешь наслаждаешься цветомузыкой
Всего 2-а подстоичника в схеме, именно и отвечают за нижнюю и верхнюю границы на шкале.А со светодиод сложнее,во первых надо знать уровень Нижний и верхний
-
Зазоры тут не причем, ясный-красный, что их не должно быть вообще! Удары которые аморт призван гасить, будут передаваться на метал опоры и дальше на кузов! Простой пример, можно проверить самостоятельно на стоковой опоре,- даешь кому нибудь маленький молоточек, садишься в салон, а человек легонько стучит сверху по штоку, а потом с тем же усилием стучит по одной из шпилек опоры!
У меня друг драгер, пару лет назад на международных соревнованиях занял 2-е место, в своем классе! Так вот он и многие другие, констатировали факт, что после установки таких опор, по городу на них ездить как минимум дискомфортно, на дальние поездки вообще грусть..! При этом человек привыкший ездить на колах, низкой резине, жестких амо,- и не испытывает от этого дискомфорта!
Лично я не пробовал, и с удовольствием услышу еще отзывы о опорах без резины
контроллер управления пневмоподвеской
в Продам пневмо и ее компоненты
Опубликовано
Ну не обязательно через реле
Можно и через MOSFET всё организовать, они гораздо меньше занимают места, быстродействие в разы выше...