Разные уровни 1 - это уже интересно! Я бы вот сразу подумал что их формируют с разных сторон. Приемник например 5В а передатчик 3,3В. Или наоборот. Вот и выходит "троичная" логика.
Машина Nissan? Можете разобрать блок климат контроля? Хотелось увидеть чем эта шина рулится.
А к чему вопрос про Ниссан ?? Я вроде видел в интернете сервопривод ниссановский и плата в нем точно такая же как и у меня (точнее там было написано регулятор вентилятора вроде, но этостранно, так как там видны дорожки потенциометра )
Здесь фотографии плат блока климата и сервопривода отопителя(других приводов нет)
Там же и схема,сложно перерисовывать и сразу красиво располагать элементы, так что как есть(схема только управления на серво)
!!!! Номиналы резисторов писал кодовой маркировкой, мне так удобней ориентироваться было!!!!
Разные уровни 1 - это уже интересно! Я бы вот сразу подумал что их формируют с разных сторон. Приемник например 5В а передатчик 3,3В. Или наоборот. Вот и выходит "троичная" логика.
это получается как двухсторонняя связь??? Тогда передатчик 12В-1 ~7В-0, а обратно 0в-0 12в или 5в хз-1, так что ли
Так а задача то какая? У вас есть блок управления климатом и Вы хотите его прилепить в шестерку?
У меня сейчас просто кондей (крутилки)
Купил на разборке блок климата , хотел присобачить к самодельным 2м сервам( 3я серва есть в моей комплектации но она не такая ) . Сервы дорогие , датчики температуры 3 штуки тоже дорогие, но я замерил температурную зависимость и уже подобрал нужные датчики за копейки, датчик солнечной радиации - фотодиод, тоже подобрал.....Эконом установка такая вот
на разборке купить готовое не дешевле, если вдруг кто написать это захочет, так как менять нужно ВСЮ ПЕЧКУ, мест под сервы и т.д нет
Еще вопросик, для 2х приводов значения пакета легко считать, так как они позиционные (у рециркуляции 2 положения, у режима 4), а вот привод заслонки регулируется сам, как ему захочется и какая дискретность хз.
так как они одинаково регулируются, то вот значения для 4х позиционной. Это конкретно биты команды:
11111111111
10100101111
01111100110
11111101101
4положения.....Может у кого то есть мысли как ....эм...ну короче понять логику этих значений, потому как если в десятичные перевести, то они не идут по вощрастанию/убыванию, черт знает как короче. Хотелось бы допустим 0-1024
вот мой суперский код, наверняка можно проще, так что жду ответов
Обманка работает , но только НЕЛЬЗЯ ставить задержки в главном цикле....БЕДА
КАК оптимизировать?
unsigned long length = 0;
unsigned long start_time = 0;
boolean myAdr[6];
boolean myComm[16];
int a=0;
unsigned int b=0;
int y;
boolean flag;
void setup() {
Serial.begin(115200);
// Привязываем к Pin2 прерывание по фронту сигнала
attachInterrupt(0, falling, FALLING);
pinMode(2, INPUT);
pinMode(9, OUTPUT); //на транзистор для замыкания делителя на землю, который выдает 7в(обратная связь-обманка)
}
void loop() {
//29-серво отопителя
//31-серво Mode
//15-серво рециркуляции
if(a==15){ //пример обматки только одной серво
// функция для определения изменения команды на серву и обманки (чтобы ошибку не выдавал)
// в myComm[13] если 1-значит едет, 0-значит стоит. Этот 0 и нужно имитировать, а 1 там всегда и так
// Пример 1 11111111110 1101 -едет (Пробелом разделил начало(не изм), команду, обратку)
// 1 11111111110 1001 -приехала в заданную точку (команда сама со 2 по 12 ЗНАЧЕНИЕ, первое значение не изменяется,
// в последних 4х только 1 значение изменяется, описанное выше)
if(myComm[1]==y){
flag = 1;
}
else
{
flag = 0;
}
y=myComm[1];
//for (int i = 0; i < 16; i++) {
//Serial.print(myComm[i]);
//}
//Туут че-то буду выполнять
Serial.println(b);
}
}
//Прерывание по срезу
void falling() {
// Привязываем к Pin2 прерывание по фронту сигнала
attachInterrupt(0, rising, RISING);
//сохраняем значение времени начала импульса
start_time = micros();
}
//Прерывание по фронту
void rising() {
// Привязываем к Pin2 прерывание по срезу сигнала
attachInterrupt(0, falling, FALLING);
//сохраняем значение длительности импульса
length = micros() - start_time;
if(length>13000){ //каждый адрес начинается после паузы 13,8мс примерно
delayMicroseconds(1000); //становлюсь на середину фронта
a=0;
for (int i = 0; i < 6; i++){
myAdr[i] = digitalRead(2);
a |= (myAdr[i] << i); //перевожу массив в число, НЕ ЗНАЮ КАК ЗАПИСЫВАТЬ НЕ ЗАДОМ НАПЕРЕД
delayMicroseconds(3966); //каждый бит
}
b=0;
for (int i = 0; i < 15; i++){ //Приходится не читывать последний фронт(он и не нужен), чтобы программа обманки отрабатывала на каждом пакете
myComm[i] = digitalRead(2);
b |= (myComm[i] << i);
delayMicroseconds(1980); //те же 3966 но разбитые на 2, для отработки обманки
if(flag==1 && a==15){ //обратная свзь flag 1- серва стоит, 0- едет
if(i==12) digitalWrite(9, HIGH); //Включается там где надо
if(i==13) digitalWrite(9, LOW);
}
delayMicroseconds(1980);
}
}
}
Разные уровни 1 - это уже интересно! Я бы вот сразу подумал что их формируют с разных сторон. Приемник например 5В а передатчик 3,3В. Или наоборот. Вот и выходит "троичная" логика.
Pavel906
Машина Nissan? Можете разобрать блок климат контроля? Хотелось увидеть чем эта шина рулится.
А к чему вопрос про Ниссан ?? Я вроде видел в интернете сервопривод ниссановский и плата в нем точно такая же как и у меня (точнее там было написано регулятор вентилятора вроде, но этостранно, так как там видны дорожки потенциометра )
Pavel906
Машина Nissan? Можете разобрать блок климат контроля? Хотелось увидеть чем эта шина рулится.
https://yadi.sk/d/hXrruM8d3ZtYTn
Здесь фотографии плат блока климата и сервопривода отопителя(других приводов нет)
Там же и схема,сложно перерисовывать и сразу красиво располагать элементы, так что как есть(схема только управления на серво)
!!!! Номиналы резисторов писал кодовой маркировкой, мне так удобней ориентироваться было!!!!
P.S на этот сайт фотки сейчас чё то не грузятся
Разные уровни 1 - это уже интересно! Я бы вот сразу подумал что их формируют с разных сторон. Приемник например 5В а передатчик 3,3В. Или наоборот. Вот и выходит "троичная" логика.
это получается как двухсторонняя связь??? Тогда передатчик 12В-1 ~7В-0, а обратно 0в-0 12в или 5в хз-1, так что ли
Как бы изменить название темы, а то теперь не в струю))
Так а задача то какая? У вас есть блок управления климатом и Вы хотите его прилепить в шестерку?
Так а задача то какая? У вас есть блок управления климатом и Вы хотите его прилепить в шестерку?
У меня сейчас просто кондей (крутилки)
Купил на разборке блок климата , хотел присобачить к самодельным 2м сервам( 3я серва есть в моей комплектации но она не такая ) . Сервы дорогие , датчики температуры 3 штуки тоже дорогие, но я замерил температурную зависимость и уже подобрал нужные датчики за копейки, датчик солнечной радиации - фотодиод, тоже подобрал.....Эконом установка такая вот
на разборке купить готовое не дешевле, если вдруг кто написать это захочет, так как менять нужно ВСЮ ПЕЧКУ, мест под сервы и т.д нет
на драйве напишу потом подробно
Задача- перехватывать сигнал управления 3мя сервами, а дальше управлять чем душе угодно
Всем спасибо, сам продвинулся
Еще вопросик, для 2х приводов значения пакета легко считать, так как они позиционные (у рециркуляции 2 положения, у режима 4), а вот привод заслонки регулируется сам, как ему захочется и какая дискретность хз.
так как они одинаково регулируются, то вот значения для 4х позиционной. Это конкретно биты команды:
11111111111
10100101111
01111100110
11111101101
4положения.....Может у кого то есть мысли как ....эм...ну короче понять логику этих значений, потому как если в десятичные перевести, то они не идут по вощрастанию/убыванию, черт знает как короче. Хотелось бы допустим 0-1024
вот мой суперский код, наверняка можно проще, так что жду ответов
Обманка работает , но только НЕЛЬЗЯ ставить задержки в главном цикле....БЕДА
КАК оптимизировать?
Прошу помощи!!