нужен девайс

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

xDriver пишет:

ua6em, потри сообщение в теме про али.

может и забьет, только разбираться в этом хламе без визуализации - жесть.

я бы сократил кол-во точек раз в сто, и дальше апроксимация на выбор

а пиво одно мне :)))

да хоть все десять, я пиво не пью )))

у тебя жеж всё по взрослому, с апи, с приложением, а тут "ты помнишь как всё начиналось" - те года когда программировали свою первую ПЗУ РТ5 ручным программатором на тумблерах с кнопкой )))

pluha
Offline
Зарегистрирован: 24.09.2021

xDriver пишет:

ua6em, потри сообщение в теме про али.

может и забьет, только разбираться в этом хламе без визуализации - жесть.

я бы сократил кол-во точек раз в сто, и дальше апроксимация на выбор

а пиво одно мне :)))

ты ж пас?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

pluha пишет:

ты ж пас?

там всё есть, ОБЯЗАНО работать из коробки, и никаких аппроксимаций чистый хард!!!
PS а уменьшить число значений - не вопрос, говори сколько надо точек измерений (только пропорционально)

// библиотека - https://github.com/hideakitai/MCP4728

#include <Wire.h>
#include "MCP4728.h"
MCP4728 dac;

const uint16_t PROGMEM my_dump1[64] = {
   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  };
  
const uint16_t PROGMEM my_dump2[64] = {
   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  };
  
const uint16_t PROGMEM my_dump3[64] = {
   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  };
const uint16_t PROGMEM my_dump4[64] = {
   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  };
uint16_t d1;
uint16_t d2;
uint16_t d3;
uint16_t d4;

void setup() {
 // Serial.begin(115200);
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);

  Wire.begin();
  dac.attach(Wire, 14);
  dac.readRegisters();
  dac.selectVref(MCP4728::VREF::VDD, MCP4728::VREF::VDD, MCP4728::VREF::VDD, MCP4728::VREF::VDD);
  dac.selectPowerDown(MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM);
  dac.selectGain(MCP4728::GAIN::X1, MCP4728::GAIN::X1, MCP4728::GAIN::X1, MCP4728::GAIN::X1);
  dac.analogWrite(MCP4728::DAC_CH::A, 0);
  dac.analogWrite(MCP4728::DAC_CH::B, 0);
  dac.analogWrite(MCP4728::DAC_CH::C, 0);
  dac.analogWrite(MCP4728::DAC_CH::D, 0);
  dac.enable(true);
  dac.readRegisters();
  delay(5000);
}

void loop() {
  d1 = map(analogRead(A0),0,1023,0,64);
  d2 = map(analogRead(A0),0,1023,0,64);
  d3 = map(analogRead(A0),0,1023,0,64);
  d4 = map(analogRead(A0),0,1023,0,64);
  dac.analogWrite(my_dump1[d1], my_dump2[d2], my_dump3[d3], my_dump4[d4]);
  delay(10);
  dac.readRegisters();
}

Скетч использует 4714 байт (14%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 364 байт (17%) динамической памяти, оставляя 1684 байт для локальных переменных. Максимум: 2048 байт.
 PS войдёт даже в attiny85

 

pluha
Offline
Зарегистрирован: 24.09.2021

ua6em пишет:

pluha пишет:

ты ж пас?

там всё есть, ОБЯЗАНО работать из коробки, и никаких аппроксимаций чистый хард!!!
PS а уменьшить число значений - не вопрос, говори сколько надо точек измерений (только пропорционально)

// библиотека - https://github.com/hideakitai/MCP4728

#include <Wire.h>
#include "MCP4728.h"
MCP4728 dac;

const uint16_t PROGMEM my_dump1[64] = {
   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  };
  
const uint16_t PROGMEM my_dump2[64] = {
   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  };
  
const uint16_t PROGMEM my_dump3[64] = {
   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  };
const uint16_t PROGMEM my_dump4[64] = {
   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  };
uint16_t d1;
uint16_t d2;
uint16_t d3;
uint16_t d4;

void setup() {
 // Serial.begin(115200);
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);

  Wire.begin();
  dac.attach(Wire, 14);
  dac.readRegisters();
  dac.selectVref(MCP4728::VREF::VDD, MCP4728::VREF::VDD, MCP4728::VREF::VDD, MCP4728::VREF::VDD);
  dac.selectPowerDown(MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM);
  dac.selectGain(MCP4728::GAIN::X1, MCP4728::GAIN::X1, MCP4728::GAIN::X1, MCP4728::GAIN::X1);
  dac.analogWrite(MCP4728::DAC_CH::A, 0);
  dac.analogWrite(MCP4728::DAC_CH::B, 0);
  dac.analogWrite(MCP4728::DAC_CH::C, 0);
  dac.analogWrite(MCP4728::DAC_CH::D, 0);
  dac.enable(true);
  dac.readRegisters();
  delay(5000);
}

void loop() {
  d1 = map(analogRead(A0),0,1023,0,64);
  d2 = map(analogRead(A0),0,1023,0,64);
  d3 = map(analogRead(A0),0,1023,0,64);
  d4 = map(analogRead(A0),0,1023,0,64);
  dac.analogWrite(my_dump1[d1], my_dump2[d2], my_dump3[d3], my_dump4[d4]);
  delay(10);
  dac.readRegisters();
}

Скетч использует 4714 байт (14%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 364 байт (17%) динамической памяти, оставляя 1684 байт для локальных переменных. Максимум: 2048 байт.
 PS войдёт даже в attiny85

 

я думаю потребуется какая-то функция, а не просто значения. 

а девайс то в итоге какой заказывать? нано 3? или вообще думаю такое взять https://ampero.ru/arduino-pro-mini.html + ЦАП на 4 канала. Вопрос только по питанию, в авто есть линия 5В, но может там и 4.5 присутствует... Повлияет ли это на выход напруги из ЦАП? Или подать на один канал ещё сигнал типа вольтметра сделать, и компенсировать разницу на выход?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

не знаю! я пользуюсь проверенными поставщиками

1. Ардуино нано

2. MCP4728 к примеру вижу тут, поставщика не знаю

PS из автомобильной электрики разбираюсь немного только в ГАЗ-51

 

pluha
Offline
Зарегистрирован: 24.09.2021

не, заграница неподходит. авто ковыряется на улице, уже холодает, надо уже в наличии.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

pluha пишет:

не, заграница неподходит. авто ковыряется на улице, уже холодает, надо уже в наличии.

у нас в станице микросхемы не продаются

pluha
Offline
Зарегистрирован: 24.09.2021

ua6em пишет:

pluha пишет:

не, заграница неподходит. авто ковыряется на улице, уже холодает, надо уже в наличии.

у нас в станице микросхемы не продаются

в чупидупе есть цап на 2 выхода... придётся из двух колхозить..

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

pluha пишет:

ua6em пишет:

pluha пишет:

не, заграница неподходит. авто ковыряется на улице, уже холодает, надо уже в наличии.

у нас в станице микросхемы не продаются

в чупидупе есть цап на 2 выхода... придётся из двух колхозить..

марка?

pluha
Offline
Зарегистрирован: 24.09.2021

Troyka-DAC Screw Terminal, Внешний ЦАП MCP4725

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

на тройке не знаю, но это один цап на корпус, но зацепить их можно не более 2-х на нано, выше уже обговаривали это и человек предложил 4728

pluha
Offline
Зарегистрирован: 24.09.2021

4728 тока на заказ с алика месяц поставка, это в лучшем случае... а эти в наличии, возьму получается два, и сам нано в мск есть.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

pluha пишет:

4728 тока на заказ с алика месяц поставка, это в лучшем случае... а эти в наличии, возьму получается два, и сам нано в мск есть.

врать-то чего, вот сразу в Ебурге    или тут

pluha
Offline
Зарегистрирован: 24.09.2021

ua6em пишет:

 или тут

так стопээ, а эта подойдёт? к лапкам паять?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

я использую готовые модули уже на платах с шагом на пинах 2.54мм, кто умеет, тот паяет, я не умею

подумал я тут подумал, всё таки 8 битное разрешение будет самым оптимальным:
 

// библиотека - https://github.com/hideakitai/MCP4728

#include <Wire.h>
#include "MCP4728.h"
MCP4728 dac;

const uint16_t PROGMEM my_dump1[256] = {
     0,    0,    1,    1,    2,    4,    6,    8,
    10,   12,   15,   19,   22,   26,   30,   35,
    39,   44,   50,   55,   61,   68,   74,   81,
    88,   96,  103,  111,  120,  128,  137,  146,
   156,  166,  176,  186,  197,  208,  219,  230,
   242,  254,  266,  279,  291,  304,  318,  331,
   345,  359,  374,  388,  403,  418,  433,  449,
   465,  481,  497,  514,  531,  548,  565,  582,
   600,  618,  636,  654,  673,  691,  710,  729,
   749,  768,  788,  808,  828,  848,  869,  889,
   910,  931,  952,  974,  995, 1017, 1039, 1060,
  1083, 1105, 1127, 1150, 1172, 1195, 1218, 1241,
  1264, 1288, 1311, 1334, 1358, 1382, 1406, 1429,
  1453, 1478, 1502, 1526, 1550, 1575, 1599, 1624,
  1648, 1673, 1698, 1723, 1747, 1772, 1797, 1822,
  1847, 1872, 1897, 1922, 1948, 1973, 1998, 2023,
  2048, 2073, 2098, 2123, 2148, 2174, 2199, 2224,
  2249, 2274, 2299, 2324, 2349, 2373, 2398, 2423,
  2448, 2472, 2497, 2521, 2546, 2570, 2594, 2618,
  2643, 2667, 2690, 2714, 2738, 2762, 2785, 2808,
  2832, 2855, 2878, 2901, 2924, 2946, 2969, 2991,
  3013, 3036, 3057, 3079, 3101, 3122, 3144, 3165,
  3186, 3207, 3227, 3248, 3268, 3288, 3308, 3328,
  3347, 3367, 3386, 3405, 3423, 3442, 3460, 3478,
  3496, 3514, 3531, 3548, 3565, 3582, 3599, 3615,
  3631, 3647, 3663, 3678, 3693, 3708, 3722, 3737,
  3751, 3765, 3778, 3792, 3805, 3817, 3830, 3842,
  3854, 3866, 3877, 3888, 3899, 3910, 3920, 3930,
  3940, 3950, 3959, 3968, 3976, 3985, 3993, 4000,
  4008, 4015, 4022, 4028, 4035, 4041, 4046, 4052,
  4057, 4061, 4066, 4070, 4074, 4077, 4081, 4084,
  4086, 4088, 4090, 4092, 4094, 4095, 4095, 4095,
 };
  
const uint16_t PROGMEM my_dump2[256] = {
     0,    0,    1,    1,    2,    4,    6,    8,
    10,   12,   15,   19,   22,   26,   30,   35,
    39,   44,   50,   55,   61,   68,   74,   81,
    88,   96,  103,  111,  120,  128,  137,  146,
   156,  166,  176,  186,  197,  208,  219,  230,
   242,  254,  266,  279,  291,  304,  318,  331,
   345,  359,  374,  388,  403,  418,  433,  449,
   465,  481,  497,  514,  531,  548,  565,  582,
   600,  618,  636,  654,  673,  691,  710,  729,
   749,  768,  788,  808,  828,  848,  869,  889,
   910,  931,  952,  974,  995, 1017, 1039, 1060,
  1083, 1105, 1127, 1150, 1172, 1195, 1218, 1241,
  1264, 1288, 1311, 1334, 1358, 1382, 1406, 1429,
  1453, 1478, 1502, 1526, 1550, 1575, 1599, 1624,
  1648, 1673, 1698, 1723, 1747, 1772, 1797, 1822,
  1847, 1872, 1897, 1922, 1948, 1973, 1998, 2023,
  2048, 2073, 2098, 2123, 2148, 2174, 2199, 2224,
  2249, 2274, 2299, 2324, 2349, 2373, 2398, 2423,
  2448, 2472, 2497, 2521, 2546, 2570, 2594, 2618,
  2643, 2667, 2690, 2714, 2738, 2762, 2785, 2808,
  2832, 2855, 2878, 2901, 2924, 2946, 2969, 2991,
  3013, 3036, 3057, 3079, 3101, 3122, 3144, 3165,
  3186, 3207, 3227, 3248, 3268, 3288, 3308, 3328,
  3347, 3367, 3386, 3405, 3423, 3442, 3460, 3478,
  3496, 3514, 3531, 3548, 3565, 3582, 3599, 3615,
  3631, 3647, 3663, 3678, 3693, 3708, 3722, 3737,
  3751, 3765, 3778, 3792, 3805, 3817, 3830, 3842,
  3854, 3866, 3877, 3888, 3899, 3910, 3920, 3930,
  3940, 3950, 3959, 3968, 3976, 3985, 3993, 4000,
  4008, 4015, 4022, 4028, 4035, 4041, 4046, 4052,
  4057, 4061, 4066, 4070, 4074, 4077, 4081, 4084,
  4086, 4088, 4090, 4092, 4094, 4095, 4095, 4095,
 };
  
const uint16_t PROGMEM my_dump3[256] = {
     0,    0,    1,    1,    2,    4,    6,    8,
    10,   12,   15,   19,   22,   26,   30,   35,
    39,   44,   50,   55,   61,   68,   74,   81,
    88,   96,  103,  111,  120,  128,  137,  146,
   156,  166,  176,  186,  197,  208,  219,  230,
   242,  254,  266,  279,  291,  304,  318,  331,
   345,  359,  374,  388,  403,  418,  433,  449,
   465,  481,  497,  514,  531,  548,  565,  582,
   600,  618,  636,  654,  673,  691,  710,  729,
   749,  768,  788,  808,  828,  848,  869,  889,
   910,  931,  952,  974,  995, 1017, 1039, 1060,
  1083, 1105, 1127, 1150, 1172, 1195, 1218, 1241,
  1264, 1288, 1311, 1334, 1358, 1382, 1406, 1429,
  1453, 1478, 1502, 1526, 1550, 1575, 1599, 1624,
  1648, 1673, 1698, 1723, 1747, 1772, 1797, 1822,
  1847, 1872, 1897, 1922, 1948, 1973, 1998, 2023,
  2048, 2073, 2098, 2123, 2148, 2174, 2199, 2224,
  2249, 2274, 2299, 2324, 2349, 2373, 2398, 2423,
  2448, 2472, 2497, 2521, 2546, 2570, 2594, 2618,
  2643, 2667, 2690, 2714, 2738, 2762, 2785, 2808,
  2832, 2855, 2878, 2901, 2924, 2946, 2969, 2991,
  3013, 3036, 3057, 3079, 3101, 3122, 3144, 3165,
  3186, 3207, 3227, 3248, 3268, 3288, 3308, 3328,
  3347, 3367, 3386, 3405, 3423, 3442, 3460, 3478,
  3496, 3514, 3531, 3548, 3565, 3582, 3599, 3615,
  3631, 3647, 3663, 3678, 3693, 3708, 3722, 3737,
  3751, 3765, 3778, 3792, 3805, 3817, 3830, 3842,
  3854, 3866, 3877, 3888, 3899, 3910, 3920, 3930,
  3940, 3950, 3959, 3968, 3976, 3985, 3993, 4000,
  4008, 4015, 4022, 4028, 4035, 4041, 4046, 4052,
  4057, 4061, 4066, 4070, 4074, 4077, 4081, 4084,
  4086, 4088, 4090, 4092, 4094, 4095, 4095, 4095,
 };
 
const uint16_t PROGMEM my_dump4[256] = {
     0,    0,    1,    1,    2,    4,    6,    8,
    10,   12,   15,   19,   22,   26,   30,   35,
    39,   44,   50,   55,   61,   68,   74,   81,
    88,   96,  103,  111,  120,  128,  137,  146,
   156,  166,  176,  186,  197,  208,  219,  230,
   242,  254,  266,  279,  291,  304,  318,  331,
   345,  359,  374,  388,  403,  418,  433,  449,
   465,  481,  497,  514,  531,  548,  565,  582,
   600,  618,  636,  654,  673,  691,  710,  729,
   749,  768,  788,  808,  828,  848,  869,  889,
   910,  931,  952,  974,  995, 1017, 1039, 1060,
  1083, 1105, 1127, 1150, 1172, 1195, 1218, 1241,
  1264, 1288, 1311, 1334, 1358, 1382, 1406, 1429,
  1453, 1478, 1502, 1526, 1550, 1575, 1599, 1624,
  1648, 1673, 1698, 1723, 1747, 1772, 1797, 1822,
  1847, 1872, 1897, 1922, 1948, 1973, 1998, 2023,
  2048, 2073, 2098, 2123, 2148, 2174, 2199, 2224,
  2249, 2274, 2299, 2324, 2349, 2373, 2398, 2423,
  2448, 2472, 2497, 2521, 2546, 2570, 2594, 2618,
  2643, 2667, 2690, 2714, 2738, 2762, 2785, 2808,
  2832, 2855, 2878, 2901, 2924, 2946, 2969, 2991,
  3013, 3036, 3057, 3079, 3101, 3122, 3144, 3165,
  3186, 3207, 3227, 3248, 3268, 3288, 3308, 3328,
  3347, 3367, 3386, 3405, 3423, 3442, 3460, 3478,
  3496, 3514, 3531, 3548, 3565, 3582, 3599, 3615,
  3631, 3647, 3663, 3678, 3693, 3708, 3722, 3737,
  3751, 3765, 3778, 3792, 3805, 3817, 3830, 3842,
  3854, 3866, 3877, 3888, 3899, 3910, 3920, 3930,
  3940, 3950, 3959, 3968, 3976, 3985, 3993, 4000,
  4008, 4015, 4022, 4028, 4035, 4041, 4046, 4052,
  4057, 4061, 4066, 4070, 4074, 4077, 4081, 4084,
  4086, 4088, 4090, 4092, 4094, 4095, 4095, 4095,
 };

uint16_t d1;
uint16_t d2;
uint16_t d3;
uint16_t d4;

void setup() {
 // Serial.begin(115200);
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);

  Wire.begin();
  dac.attach(Wire, 14);
  dac.readRegisters();
  dac.selectVref(MCP4728::VREF::VDD, MCP4728::VREF::VDD, MCP4728::VREF::VDD, MCP4728::VREF::VDD);
  dac.selectPowerDown(MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM);
  dac.selectGain(MCP4728::GAIN::X1, MCP4728::GAIN::X1, MCP4728::GAIN::X1, MCP4728::GAIN::X1);
  dac.analogWrite(MCP4728::DAC_CH::A, 0);
  dac.analogWrite(MCP4728::DAC_CH::B, 0);
  dac.analogWrite(MCP4728::DAC_CH::C, 0);
  dac.analogWrite(MCP4728::DAC_CH::D, 0);
  dac.enable(true);
  dac.readRegisters();
  delay(5000);
}

void loop() {
  d1 = (analogRead(A0) >> 2);
  d2 = (analogRead(A1) >> 2);
  d3 = (analogRead(A2) >> 2);
  d4 = (analogRead(A3) >> 2);
 
  dac.analogWrite(my_dump1[d1], my_dump2[d2], my_dump3[d3], my_dump4[d4]);
  delay(10);
  dac.readRegisters();
}

и что скажешь?

MaksVV
Offline
Зарегистрирован: 06.08.2015

да формула там нужна будет скорее всего. никаких точек. Что на что свапали ? 

rkit
Offline
Зарегистрирован: 23.11.2016

ua6em пишет:

const uint16_t PROGMEM my_dump1[256] = {
     0,    0,    1,    1,    2,    4,    6,    8,
    10,   12,   15,   19,   22,   26,   30,   35,
    39,   44,   50,   55,   61,   68,   74,   81,
    88,   96,  103,  111,  120,  128,  137,  146,
   156,  166,  176,  186,  197,  208,  219,  230,
   242,  254,  266,  279,  291,  304,  318,  331,
   345,  359,  374,  388,  403,  418,  433,  449,
   465,  481,  497,  514,  531,  548,  565,  582,
   600,  618,  636,  654,  673,  691,  710,  729,
   749,  768,  788,  808,  828,  848,  869,  889,
   910,  931,  952,  974,  995, 1017, 1039, 1060,
  1083, 1105, 1127, 1150, 1172, 1195, 1218, 1241,
  1264, 1288, 1311, 1334, 1358, 1382, 1406, 1429,
  1453, 1478, 1502, 1526, 1550, 1575, 1599, 1624,
  1648, 1673, 1698, 1723, 1747, 1772, 1797, 1822,
  1847, 1872, 1897, 1922, 1948, 1973, 1998, 2023,
  2048, 2073, 2098, 2123, 2148, 2174, 2199, 2224,
  2249, 2274, 2299, 2324, 2349, 2373, 2398, 2423,
  2448, 2472, 2497, 2521, 2546, 2570, 2594, 2618,
  2643, 2667, 2690, 2714, 2738, 2762, 2785, 2808,
  2832, 2855, 2878, 2901, 2924, 2946, 2969, 2991,
  3013, 3036, 3057, 3079, 3101, 3122, 3144, 3165,
  3186, 3207, 3227, 3248, 3268, 3288, 3308, 3328,
  3347, 3367, 3386, 3405, 3423, 3442, 3460, 3478,
  3496, 3514, 3531, 3548, 3565, 3582, 3599, 3615,
  3631, 3647, 3663, 3678, 3693, 3708, 3722, 3737,
  3751, 3765, 3778, 3792, 3805, 3817, 3830, 3842,
  3854, 3866, 3877, 3888, 3899, 3910, 3920, 3930,
  3940, 3950, 3959, 3968, 3976, 3985, 3993, 4000,
  4008, 4015, 4022, 4028, 4035, 4041, 4046, 4052,
  4057, 4061, 4066, 4070, 4074, 4077, 4081, 4084,
  4086, 4088, 4090, 4092, 4094, 4095, 4095, 4095,
 };

uint16_t my_dump1(double x) {
  return -14.549464 + 1.61280719 * x + 0.12322994 * x**2
}

Коэффициент корреляции с таблицей 0.9998653436

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

rkit пишет:

ua6em пишет:

const uint16_t PROGMEM my_dump1[256] = {
     0,    0,    1,    1,    2,    4,    6,    8,
    10,   12,   15,   19,   22,   26,   30,   35,
    39,   44,   50,   55,   61,   68,   74,   81,
    88,   96,  103,  111,  120,  128,  137,  146,
   156,  166,  176,  186,  197,  208,  219,  230,
   242,  254,  266,  279,  291,  304,  318,  331,
   345,  359,  374,  388,  403,  418,  433,  449,
   465,  481,  497,  514,  531,  548,  565,  582,
   600,  618,  636,  654,  673,  691,  710,  729,
   749,  768,  788,  808,  828,  848,  869,  889,
   910,  931,  952,  974,  995, 1017, 1039, 1060,
  1083, 1105, 1127, 1150, 1172, 1195, 1218, 1241,
  1264, 1288, 1311, 1334, 1358, 1382, 1406, 1429,
  1453, 1478, 1502, 1526, 1550, 1575, 1599, 1624,
  1648, 1673, 1698, 1723, 1747, 1772, 1797, 1822,
  1847, 1872, 1897, 1922, 1948, 1973, 1998, 2023,
  2048, 2073, 2098, 2123, 2148, 2174, 2199, 2224,
  2249, 2274, 2299, 2324, 2349, 2373, 2398, 2423,
  2448, 2472, 2497, 2521, 2546, 2570, 2594, 2618,
  2643, 2667, 2690, 2714, 2738, 2762, 2785, 2808,
  2832, 2855, 2878, 2901, 2924, 2946, 2969, 2991,
  3013, 3036, 3057, 3079, 3101, 3122, 3144, 3165,
  3186, 3207, 3227, 3248, 3268, 3288, 3308, 3328,
  3347, 3367, 3386, 3405, 3423, 3442, 3460, 3478,
  3496, 3514, 3531, 3548, 3565, 3582, 3599, 3615,
  3631, 3647, 3663, 3678, 3693, 3708, 3722, 3737,
  3751, 3765, 3778, 3792, 3805, 3817, 3830, 3842,
  3854, 3866, 3877, 3888, 3899, 3910, 3920, 3930,
  3940, 3950, 3959, 3968, 3976, 3985, 3993, 4000,
  4008, 4015, 4022, 4028, 4035, 4041, 4046, 4052,
  4057, 4061, 4066, 4070, 4074, 4077, 4081, 4084,
  4086, 4088, 4090, 4092, 4094, 4095, 4095, 4095,
 };

uint16_t my_dump1(double x) {
  return -14.549464 + 1.61280719 * x + 0.12322994 * x**2
}

Коэффициент корреляции с таблицей 0.9998653436

да нет, это абстрактные данные были. ТС в полной уверенности, что может вывести кривые по 4-рём каналам сам, как он это сделает ума не приложу, вопрос был о разумной достаточности   разрешающей способности по числу элементов массива

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

MaksVV пишет:

да формула там нужна будет скорее всего. никаких точек. Что на что свапали ? 

да в природе всё просто либо синус либо гибербола

nik182
Онлайн
Зарегистрирован: 04.05.2015

rkit пишет:

uint16_t my_dump1(double x) {
  return -14.549464 + 1.61280719 * x + 0.12322994 * x**2
}

Коэффициент корреляции с таблицей 0.9998653436

A мне квадратом не фитит, только кубом.

pluha
Offline
Зарегистрирован: 24.09.2021

MaksVV пишет:

да формула там нужна будет скорее всего. никаких точек. Что на что свапали ? 

формула и нужна, будут какие-то промежуточные опорные точки, но все в пределах.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

pluha пишет:

MaksVV пишет:

да формула там нужна будет скорее всего. никаких точек. Что на что свапали ? 

формула и нужна, будут какие-то промежуточные опорные точки, но все в пределах.

с тех пор как изобрели Эксель вообще дерьмо вопрос )))

PS Пиво где, где пиво? Я Драйверу должен )))

pluha
Offline
Зарегистрирован: 24.09.2021

ua6em пишет:

pluha пишет:

MaksVV пишет:

да формула там нужна будет скорее всего. никаких точек. Что на что свапали ? 

формула и нужна, будут какие-то промежуточные опорные точки, но все в пределах.

с тех пор как изобрели Эксель вообще дерьмо вопрос )))

PS Пиво где, где пиво? Я Драйверу должен )))

ну я и планировал если что все через эксель прогнать, там все просто…

пиво пока остывает так сказать. но процесс ещё не завершён, на днях доберусь до авто поковыряю, так то все закуплено

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

pluha пишет:

ua6em пишет:

pluha пишет:

MaksVV пишет:

да формула там нужна будет скорее всего. никаких точек. Что на что свапали ? 

формула и нужна, будут какие-то промежуточные опорные точки, но все в пределах.

с тех пор как изобрели Эксель вообще дерьмо вопрос )))

PS Пиво где, где пиво? Я Драйверу должен )))

ну я и планировал если что все через эксель прогнать, там все просто…

пиво пока остывает так сказать. но процесс ещё не завершён, на днях доберусь до авто поковыряю, так то все закуплено

формула конечно хорошо, но только из таблицы оно будет брать такта за 4 процессора +- а вот сколько будет считать формулу - вопрос , на интеле это делалось за один так процессора )))

и зачем тебе авто, прицепи крутёлки и посмотри работу на столе

PS и таки да память программ в контроллере, это не то, что ты сможешь завещать внукам, девать её некуда

pluha
Offline
Зарегистрирован: 24.09.2021

ну а сколько там мгц у процессора... не думаю что нехватит...

на столе не очень получится, мне нужно снимать "входящие" параметры, а они из-за так называемого самообучающегося дросселя - меняются, и меняются они пока дроссель не выйдет из режима самообучения. т.е. это поставил девайс, потыкал, и надо поездить пол дня, и так пока не попаду в "штатные" параметры.

PS и таки да память программ в контроллере, это не то, что ты сможешь завещать внукам, девать её некуда - это типа не сохраняется что-то? память энергозависимая?

xDriver
xDriver аватар
Онлайн
Зарегистрирован: 14.08.2015

ua6em пишет:

PS Пиво где, где пиво? Я Драйверу должен )))

да... я жду... :)))

а по делу, мега справится с табличным подходом, как только формула будет нужна и на "лету", все, о меге забывайте, иначе инертность вход/выход при вычислении, ставит крест на этой затее.

тут к дяде СТМу нужно, с его "сопроцессором".

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

об ИИ и разговора не было, ты стучал себя в грудь, что таблицы сам поправишь, НУ НУ )))

MaksVV
Offline
Зарегистрирован: 06.08.2015

xDriver пишет:

а по делу, мега справится с табличным подходом, как только формула будет нужна и на "лету", все, о меге забывайте, иначе инертность вход/выход при вычислении, ставит крест на этой затее.

тут к дяде СТМу нужно, с его "сопроцессором".

педаль газа и дроссельный узел достаточно медленные устройства и нафиг там супербыстрый отклик от МК не нужен. имхо , ресурсов атмеги 328 в данной задаче  до попы , хоть для формул , хоть по точкам. Просто забивать всю эту таблицу то ещё развлечение

MaksVV
Offline
Зарегистрирован: 06.08.2015

pluha пишет:

на столе не очень получится, мне нужно снимать "входящие" параметры, а они из-за так называемого самообучающегося дросселя - меняются, и меняются они пока дроссель не выйдет из режима самообучения. т.е. это поставил девайс, потыкал, и надо поездить пол дня, и так пока не попаду в "штатные" параметры.

интересно о каких параметрах речь? в дросселе два датчика-потенциометра, в педали газа тоже самое. Что там может меняться? Вот %открытия дросселя/педали да, может подстраиваться. А напряжения на датчиках в списке параметров реальные и видишь. Нужна осциллограмма "родных" датчиков и тех, которые вы подсовываете этому чужому для них ЭБУ , тогда сразу все станет понятно. а так пальцем в небо. 

xDriver
xDriver аватар
Онлайн
Зарегистрирован: 14.08.2015

хм, по моим самым грубым прикидкам, не забываем что надо не только пересчитать но и куда то (хоть в цап) засунуть, 4 канала займут 800-900ms, а для сваперов-корчеров это вечность как мне кажется. но вам видней...

MaksVV
Offline
Зарегистрирован: 06.08.2015

0.9 секунды? че цап такой медленный чтоли. А расчет формулы то явно быстрее должен быть. в 10мс то точно должно уложиться.  А так если частота обновления сигнала дросселя будет в секунду , то это вообще никуда не годится, от слова совсем. 

xDriver
xDriver аватар
Онлайн
Зарегистрирован: 14.08.2015

MaksVV чет да, я хапнул сильновато, похоже на порядок ошибся, пойду всю ночь пересчитывать буду...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

так это тогда не так надо делать, искать авто с оригинальными датчиками ставить энкодер позволяющий считать точное положение и писать в таблицу значение энкодера - значение с датчика, для газа так точно можно сделать

ЗЫ я бы вообще записывал в EEPROM

pluha
Offline
Зарегистрирован: 24.09.2021

MaksVV пишет:

интересно о каких параметрах речь? в дросселе два датчика-потенциометра, в педали газа тоже самое. Что там может меняться? Вот %открытия дросселя/педали да, может подстраиваться. А напряжения на датчиках в списке параметров реальные и видишь. Нужна осциллограмма "родных" датчиков и тех, которые вы подсовываете этому чужому для них ЭБУ , тогда сразу все станет понятно. а так пальцем в небо. 

ничего в датчиках не меняется, меняется в "мозге", так как один из датчиков не соответствует штатному, по сопротивлению конечно же. осцилограмму наверное не смогу снять, элементарно нечем. поэтому методом тыка, ну и там не особо сложно, я знаю например что при закрытом дросселе на ХХ должно в мозг заходить 0.6 вольт  при полностью открытом 4.8в, на "парковке" просто какой-то сигнал (типа вкл-выкл 1/0). и это напряжение должно соотвествовать второму датчику, что важно, а как только оно не соотвествует, мозг впадает в обучение дросселя, и корректиурет положение дросселя электроприводом, и так до бесконечности. всё что нужно, это подогнать значения педали в том или ином положении, с открытием заслонки. Я сначала хотел подогнать сопротивление, но оказалось, что оно уже выше, чем нужно, т.е. сопротивление нужно убрать) Вот и решил просто выдавать своё напряжение через ардуину, в зависимости от нажатия на педаль.

А скорость у чипа сколько? 16мгц? Этого более чем...

pluha
Offline
Зарегистрирован: 24.09.2021

ua6em пишет:

так это тогда не так надо делать, искать авто с оригинальными датчиками ставить энкодер позволяющий считать точное положение и писать в таблицу значение энкодера - значение с датчика, для газа так точно можно сделать

ЗЫ я бы вообще записывал в EEPROM

да есть старый дроссель, его можно поставить и считать, но мне это ничего не даст.

что нужно будет подавать на выход их я и так знаю, но эти параметры не будут привязаны к углу открытия дросселя, типа я получу 2 вольта, а на каком угле? в итоге я решил так делать - открываю педалью дроссель, и считываю напряжение с датчика заслонки (со второго), вижу там например 1 в, значит и на педали должно быть 1 в, значит угол открытия педали соотвествует углу заслонки. и параллельно, мне надо это параметры сопоставлять со входящими от педали, так как на вход будет другое напряжение. вот как-то так. поэтому только методом тыка)

 

pluha
Offline
Зарегистрирован: 24.09.2021

xDriver пишет:

хм, по моим самым грубым прикидкам, не забываем что надо не только пересчитать но и куда то (хоть в цап) засунуть, 4 канала займут 800-900ms, а для сваперов-корчеров это вечность как мне кажется. но вам видней...

это что-то оч долго, мозг сразу в ошибку выпадет при таком лаге...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

pluha пишет:

 поэтому только методом тыка)

С тех пор как изобрели арифметику это не наш метод )))

для этого энкодер и ставится на дроссель )))
Педалью подавить обучить скетч чтобы заполнил весь буфер, позиция в буфере - угол дросселя, значение - значение на этом угле,  здесь самое сложное - механика

pluha
Offline
Зарегистрирован: 24.09.2021

ua6em пишет:

С тех пор как изобрели арифметику это не наш метод )))

для этого энкодер и ставится на дроссель )))
Педалью подавить обучить скетч чтобы заполнил весь буфер, позиция в буфере - угол дросселя, значение - значение на этом угле,  здесь самое сложное - механика

у меня не так много есть устройств для измерений) за 100 рублей из ашана мультиметр и всё. даже паяльника по факту нет.
педалью обучить скетч не получится, педаль механически не связана с заслонкой, угол открытия заслонкой регулируется электроприводом, и проблема в том, что он всегда разный. т.е. когда я жму на педаль, я фактически не знаю какой угол, я лишь знаю какое напряжение выдаёт датчик положения дросселя, оно вроде даже по ОБД2 показывается, и как-то интерпретируется даже в % открытия. Но саму педаль не показывает. Поэтому я просто скидываю мозг, считываю входящие с педали, и сразу же считываю показания с дросселя. дальше подставляю на выход в ЦАП свои значения. Может так оказаться что там нужно будет просто прибавить сколько то вольт везде, и тогда я без ардуино что-то спаяю.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Мультиметра до жопы хватит. Измерь сопротивление в крайних точках (положения заслонки полностью открыто и полностью закрыто) родного и свапного дросселя. Мерить между массой датчиков и сигнальным ползунком или между питанием и сигнальным ползунком. Только смотри у электронного дросселя полностью закрытое положение надо рукой дозакрывать. (он чуть подпружинен в приоткрытом состоянии). Также измерить сколько всего сопротивление у переменного резистора датчика (между контактами питание и масса датчиков) возможно вообще без МК обойтись, добавив резюк в плечо делителя
Зы при чем тут Эл педаль газа вообще не понял

MaksVV
Offline
Зарегистрирован: 06.08.2015

Или же перерезать один провод моторчика дросселя, чтоб мотор не работал и вручную перемещать дроссель от края до края контролируя напругу датчиков в диагностике, тогда и мультиметр не нужен

pluha
Offline
Зарегистрирован: 24.09.2021

MaksVV пишет:
Мультиметра до жопы хватит. Измерь сопротивление в крайних точках (положения заслонки полностью открыто и полностью закрыто) родного и свапного дросселя. Мерить между массой датчиков и сигнальным ползунком или между питанием и сигнальным ползунком. Только смотри у электронного дросселя полностью закрытое положение надо рукой дозакрывать. (он чуть подпружинен в приоткрытом состоянии). Также измерить сколько всего сопротивление у переменного резистора датчика (между контактами питание и масса датчиков) возможно вообще без МК обойтись, добавив резюк в плечо делителя Зы при чем тут Эл педаль газа вообще не понял

в том то и дело, что у полностью закрытого (педаль газа отпущена) дроссель чуть открыт да, но для педали газа (а там тоже датчик) это конечное состояние, дальше не закрыть. Сопротивление то я могу померить, что я первым делом и делал когда подбирал датчики на заслонку, а вот на педаль я не могу подобрать датчик, он физический другой, только что-то самому изобретать механически чтобы другой ставить. Но суть в том, что сейчас сопротивление на 3-5кОм выше чем требуется. Если я отключу привод моторчика или сниму любой из датчиков, или они сильно отличаются от шатных по параметрам - мозг входит в аварийный режим, питание пропадает, дроссель открывается на 10% только при педали в пол (там механически уже работает). Т.е. измерения нужно проводить на +- рабочем состоянии.

pluha
Offline
Зарегистрирован: 24.09.2021

MaksVV пишет:
Или же перерезать один провод моторчика дросселя, чтоб мотор не работал и вручную перемещать дроссель от края до края контролируя напругу датчиков в диагностике, тогда и мультиметр не нужен
так не будет работать, нужно чтобы напряжение на датчике из педали газа, и с положения заслонки были одинаковые. да они могут отличаться, только тогда будут разные углы нажатия на педаль и открытия заслонки, типа нажал на 15% педаль, а открылось на 30%.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Понял! Пива мы с Драйвером не дождёмся )))

MaksVV
Offline
Зарегистрирован: 06.08.2015

pluha пишет:
в том то и дело, что у полностью закрытого (педаль газа отпущена) дроссель чуть открыт да, но для педали газа (а там тоже датчик) это конечное состояние, дальше не закрыть. Сопротивление то я могу померить, что я первым делом и делал когда подбирал датчики на заслонку, а вот на педаль я не могу подобрать датчик, он физический другой, только что-то самому изобретать механически чтобы другой ставить. Но суть в том, что сейчас сопротивление на 3-5кОм выше чем требуется. Если я отключу привод моторчика или сниму любой из датчиков, или они сильно отличаются от шатных по параметрам - мозг входит в аварийный режим, питание пропадает, дроссель открывается на 10% только при педали в пол (там механически уже работает). Т.е. измерения нужно проводить на +- рабочем состоянии.

вообще ниче не понял. Причем тут педаль. У дросселя и педали газа нет жесткой связи. Это отдельные устройства. Что значит дальше дроссель не закрыть? Подпружинено в приоткрытом состоянии лишь для того, чтобы эл.мотору дросселя было легче держать заслонку в предзакрытом состоянии, т.к. заслонку в таких почти закрытых положениях вакуумом пытается прихлопнуть и пружина помогает мотору держать её на малых углах открытия.

педаль тоже меняли чтоли, она не родная для эбу? Нафига в педаль лезти если она родная? 

MaksVV
Offline
Зарегистрирован: 06.08.2015

по педали просто смотришь в диагностике если от 0 % до 100% при нажатии на педаль нормально меняется параметр, и ошибок на неё нет вообще педаль не трогай, зачем до нее докопался

и если отключишь мотор дросселя, да будет в аварии эбу . но питание на датчики дросселя все равно должно идти, измерения проводить понятное дело на неработающем двигателе при включенном зажигании вручную шевелив дроссель и смотреть в диагностике  на напряжения сигнальных проводов датчиков. 

 и как он тебе дроссель откроет на 10% если ты провод мотора перерезал? бред какойто

pluha
Offline
Зарегистрирован: 24.09.2021

ua6em пишет:

Понял! Пива мы с Драйвером не дождёмся )))

да всё будет, не паникуйте)

pluha
Offline
Зарегистрирован: 24.09.2021

MaksVV пишет:

по педали просто смотришь в диагностике если от 0 % до 100% при нажатии на педаль нормально меняется параметр, и ошибок на неё нет вообще педаль не трогай, зачем до нее докопался

и если отключишь мотор дросселя, да будет в аварии эбу . но питание на датчики дросселя все равно должно идти, измерения проводить понятное дело на неработающем двигателе при включенном зажигании вручную шевелив дроссель и смотреть в диагностике  на напряжения сигнальных проводов датчиков. 

 и как он тебе дроссель откроет на 10% если ты провод мотора перерезал? бред какойто

в диагностике показывает с датчика заслонки, а не с педали. 

если отключаю мотор с дросселя то питание пропадает (проверял).

дроссель открывается на 10-15% МЕХАНИЧЕСКИ если полностью педаль нажать в пол. Ну такой узел, там если до конца выкрутить, то язычок уже тянет за заслонку минуя электронику, это на случай если что-то сломалось, ты мог ехать хоть как-то.

MaksVV
Offline
Зарегистрирован: 06.08.2015

pluha пишет:

дроссель открывается на 10-15% МЕХАНИЧЕСКИ если полностью педаль нажать в пол. Ну такой узел, там если до конца выкрутить, то язычок уже тянет за заслонку минуя электронику, это на случай если что-то сломалось, ты мог ехать хоть как-то.

чето мы на разных языках чтоли говорим. Он откроется сразу на величину подпружинивания , как только ты провод эл мотора перережешь . Пофиг как там у тебя педаль газа хоть в пол , хоть не в пол. Или у тебя трос чтоли от педали до дросселя я вообще нихера не пойму

pluha
Offline
Зарегистрирован: 24.09.2021

MaksVV пишет:

не понял. Причем тут педаль. У них нет жесткой связи. Что значит дальше не закрыть. Подпружинено в приоткрытом состоянии лишь для того, чтобы эл.мотору дросселя было легче держать заслонку в предзакрытом состоянии, т.к. заслонку в таких почти закрытых положениях вакуумом пытается прихлопнуть и пружина помогает мотору держать её на малых углах открытия.

педаль тоже меняли чтоли, она не родная для эбу? 

мне нужно изменить выходные параметры именно для датчика с педали, поэтому она тут "причём". И педаль дозакрыть не могу) она механически упирается в ограничительный болт при полностью отпущеной педали. В этот момент она встаёт на так называемый паркинг, детектится по второму каналу, и уже работает ХХ по своему алгоритму. Сама же заслонка подпружинена да, но не для того чтобы легко держать заслонку, а чтобы закрывать её ещё больше когда это требуется, например при торможении двигателем, она больше закрывается чем просто на ХХ, но и закрыться она полностью не может, есть ограничительный болт, по которому выставляется определённый зазор на заслонке. Собвстенно по этому и возникают проблемы, из-за неправильных данных с педали газа, дроссель пытается закрыться полностью, упирается в болт ограничительный. Пробовал больше выставить зазор - в других местах проблемы вылазят.
 

Сейчас для ЭБУ неродная только педаль, датчик самой заслонки я подобрал по сопротивлению с другой, и он типа болт он подошёл, только проводку отзеркалил. 

Задача - синхронизировать напряжение с датчика педали, с датчиком заслонки. Как это выглядит - в ардуино входит сигнал с датчика заслонки, и с датчика педали, жму на педаль, в ардуине вижу вольтаж с педали и с заслонки, например 1 вольт с педали и с заслонки, например 0.8 вольт, и всё. Дальше в ардуино надо прописать, что если входит 1в, на ЦАП подать 0.8 в. Дальше датчик дросселя для ардуино не используется.
На снятом или на столе эти данные я не могу сопоставить, так как не знаю степень открытия ни пидали на заслонки. Поэтом проще это всё делать прям по месту.

pluha
Offline
Зарегистрирован: 24.09.2021

MaksVV пишет:

чето мы на разных языках чтоли говорим. Он откроется сразу на величину подпружинивания , как только ты провод эл мотора перережешь . Пофиг как там у тебя педаль газа хоть в пол , хоть не в пол. Или у тебя трос чтоли от педали до дросселя я вообще нихера не пойму

мы говорим о разных дроссельных узлах. конкретно в этом, если нажать газ в пол, то механически, там шестерёночки за который тросик тянет, типа да, есть тросс, но педаль электронная, ты тросиком тянешь потенциометр, а он уже через моторчик открывает дроссль. Но в самом конце устройства есть язычок, он откроет дроссель на 10-15% (я не помню точно, но типа километров 60-70 на пятой она поедет. 
Открывается на величину подпружинивания только если всё выключено, или когда дроссель впадает в аварийный режим. Это 100%, потому что как только вырубается дроссель, чуть поднимаются ХХ (открывается на величину подпружинивания), если всё работает и управляется приводом, то дроссель чуть закрыт, я вижу это и как по разряжению во впуске (МАП) и по датчику положения заслонки + если тормозить двигателем там уже упирается в ограничительный болт, т.е. ещё сильнее закрывается, но не засчёт разряжения во впуске, заслонка же круглая, на оси, поток её пытается "всосать" как снизу так и сверху, за одну часть пытается закрыть, за другую - открыть, типа компенсируется. Иначе бы она схлопывалась уже, там и так щелка на подпружиненной 0.5мм щуп лезет.