Какие модели компонентов из протеуса подойдут?

Тема в разделе "Arduino & Shields", создана пользователем incvisitor, 5 дек 2018 в 22:33.

  1. incvisitor

    incvisitor Нерд

    Код (C++):
    int voltPin =0; //напряжение с аккумулятора через делитель
    int chargePin = 9; //выход на реле подачи зарядного импульса с выпрямителя
    void setup() {
    Serial.begin(115200);
    pinMode(chargePin, OUTPUT); //назначаем 9 пин выходом
    }
    void loop() {
    label:
    delay(6000);
    int val = analogRead(voltPin); //создаем переменную val
    delay(200);
    int val20 = analogRead(voltPin);
    float voltage = ((val+val20)/2) * (18.9 / 1023.0);
    Serial.println("__________Reading___________");
    Serial.println("Voltage");
    Serial.println(voltage);
    if(voltage < 13.4) //если напряжение меньше 13.4 Вольта, то подаем импульс
    { Serial.println("VOLTAGE<13.4 Charge");
    digitalWrite(chargePin, LOW);
    delay(1000);
    int vall = analogRead(voltPin); //создаем переменную val
    delay(200);
    int val201 = analogRead(voltPin);
    float voltage1 = ((vall+val201)/2) * (18.9 / 1023.0);
    Serial.println(voltage1);
    if(voltage1 < 14.7)
    {
    digitalWrite(chargePin, LOW);
    Serial.println("VOLTAGE<14.7 Charge1");
    delay(1000);
    }
    else
    {
    digitalWrite(chargePin, HIGH);
    Serial.println("Kasanie14.7 na 1 SEC");
    goto label;
    }
    int val2 = analogRead(voltPin);
    delay(200);
    int val202 = analogRead(voltPin);
    float voltage2 = ((val2+val202)/2) * (18.9 / 1023.0);
    Serial.println(voltage2);
    if(voltage2 < 14.7)
    {
    digitalWrite(chargePin, LOW);
    Serial.println("VOLTAGE<14.7 Charge2");
    delay(1000);
    }
    else
    {
    digitalWrite(chargePin, HIGH);
    Serial.println("Kasanie14.7 na 2 SEC");
    goto label;
    }
    int val3 = analogRead(voltPin);
    delay(200);
    int val203 = analogRead(voltPin);
    float voltage3 = ((val3+val203)/2) * (18.9 / 1023.0);
    Serial.println(voltage3);
    if(voltage3 < 14.7)
    {
    digitalWrite(chargePin, LOW);
    Serial.println("VOLTAGE<14.7 Charge3");
    delay(1000);
    }
    else
    {
    digitalWrite(chargePin, HIGH);
    Serial.println("Kasanie14.7 na 3 SEC");
    goto label;
    }
    int val4 = analogRead(voltPin);
    delay(200);
    int val204 = analogRead(voltPin);
    float voltage4 = ((val4+val204)/2) * (18.9 / 1023.0);
    Serial.println(voltage4);
    if(voltage4 < 14.7)
    {
    digitalWrite(chargePin, LOW);
    Serial.println("VOLTAGE<14.7 Charge4");
    delay(1000);
    digitalWrite(chargePin, HIGH);
    }
    else
    {
    digitalWrite(chargePin, HIGH);
    Serial.println("Kasanie14.7 5SEC");
    goto label;
    }
    }
    else
    {
    Serial.println("Voltage>13.4V");
    digitalWrite(chargePin, HIGH);
    Serial.println("OverVoltageWAIT");
    delay(8000);
    }
    }
     
    Цель зарядка 12 v АКБ или его имитация в протеусе.
    В качестве АКБ планирую применить параллельно соединив реостат на 10 к ом и конденсатор на 10 арад. В протеусе можно любые номиналы поставить. А вот,какие модели подйдут для модуля реле и стабилизатора,трансформатора.диодного моста?
     

    Вложения:

  2. Не надо никаких моделей диодных мостов, стабилизаторов, фильтров. Просто - источник DC из генераторов Generator mode. Релюхи в Протеусе - есть в библиотеке Switches and Relays.
     
  3. incvisitor

    incvisitor Нерд

    А релюха,какая подойдет по моей схеме нужно два входа и два выхода.Что то такой не нашел.
     
  4. parovoZZ

    parovoZZ Гуру

    поставь две. Катушки запараллель.
     
  5. Вот накатал в протеусе. Я думаю вам именно это надо. Релюхи :
    SPST -single pole, single throw - одна группа - один путь
    DPDT - Double группы - два пути
    DPST, SPDT - догадаетесь. А конкретное название - оно вам надо ?
    Вот тут на схеме реле - SPDT.
    Как источник взял батарею, а не из раздела генераторов. Те подразумевают общую землю, а у вас именно минус коммутируется. В реале ардуина подключится землей к GND_ACC, а плюсом 5в - к +5V на схеме.
    Не забывайте для LM7805 на входе должно быть больше 9В. Иначе используйте что-то из серии LM317-ых (Low drop voltage).
     

    Вложения:

    • Acc_Charger.PNG
      Acc_Charger.PNG
      Размер файла:
      30 КБ
      Просмотров:
      13
    Последнее редактирование: 6 дек 2018 в 21:20
    incvisitor нравится это.
  6. incvisitor

    incvisitor Нерд

    Вот схема для зарядки до 5V. D9 в режиме PWM открывает IRF510,а данные о температуре,напряжению и току снимаются на три аналоговые пина А0-А2. Мне схема нравиться и хочу ее под 12v переделать. Как на А0-А2 подать данные свыше 5в что бы Мк не сгорел и значение от 0 до 255 AnalogRead не обрезалось?
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      152,2 КБ
      Просмотров:
      10
  7. incvisitor

    incvisitor Нерд

    Вашу схему готов забрать,могли бы пожалуйста сделать,что бы данные на ЖКИ выводились о токе,напряжению. Если менять значения сопротивления RV1 и емкости C1
     
  8. Про температурный вход - ничего не скажу - не зная что там. А два других: - возьмите два резистора X ком (> 50 ком, < 100 ком ) и два 1.4 * X. Паяйте последовательно X и 1.4X. Свободный конец X - на землю. Точку спайки X и 1.4X - на вход Ардуины. Свободный конец 1.4X - на измеряемое напряжение. Вторую пару так же. Короче - просто ставим делители (1 / 2.4) на входах. А в программе корректируем коэффициент пропорциональности. При подборе -выбираем ближайший в сторону увеличения (1.4X -1.5X), чтоб не превысить 5В на входе.
     
    Последнее редактирование: 6 дек 2018 в 22:13
  9. Вам схему или код ? Или "...и то и другое и можно без хлеба..." ?
     
  10. incvisitor

    incvisitor Нерд

    С чаем или икрой?
     
  11. Ну типа такого. Обратите внимание - Релюха включена, хотя на обмотке нуль с обоих концов. Нонсенс ! - Это тонкости настройки стартового положения элемента симулируемой схемы (SET, RESET и тд.).
     

    Вложения:

    Последнее редактирование: 7 дек 2018 в 13:16