Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Re: Управление байпасом с одного пина

Ср июн 08, 2022 16:43:06

да, это более вероятно.
а не пробовали эксперимент, как я? то есть, отключить всё нафиг от 595, кроме выходов, и дать питание? Это бы сразу определило, есть ли в них какая-то странность, или нет.

Re: Управление байпасом с одного пина

Чт июн 09, 2022 09:24:10

если оставить только питание и убрать кондёр то они прост осветятся все
смена пина тоже не помогла

в общем с кондёром мне нравится поставил 820 мкф задержка 7 сек
как раз прошивка прогрузится датчики опросятся а там уже и нагрузка разблочится

Добавлено after 9 minutes 25 seconds:
а можно ли на 595 подать питание 5в но при этом spi будет от есп32 ?
а то если питать от той же есп на выходах напруга 2,82в всего
под мосфет нужно мне побольше

Re: Управление байпасом с одного пина

Чт июн 09, 2022 10:08:38

74HC_HCT595.pdf
(278.04 KiB) Скачиваний: 55

Re: Управление байпасом с одного пина

Чт июн 09, 2022 10:43:40

а как апаратный spi подключить к 595
пробую по разному не получается и методом тыка тоже

последний вариант
13-11
12-14
14-12

и всеравно все горят

Re: Управление байпасом с одного пина

Чт июн 09, 2022 12:02:18

а как апаратный spi подключить к 595

MOSI от микроконтроллера на вывод 14 (595), SS от МК на вывод 12 (595), SCK от МК на вывод 11 (959).
и всеравно все горят

Так и будет пока "жаба" не позволит задействовать дополнительный вывод МК. :)) Выше я предлагал такой вариант... https://www.radiokot.ru/forum/viewtopic ... 6#p4239876 :wink:

Re: Управление байпасом с одного пина

Чт июн 09, 2022 12:12:35

Изображение
там только моси есть

Re: Управление байпасом с одного пина

Чт июн 09, 2022 12:18:00

любой вывод (которым можно рулить от МК) на вывод 12 (595), CLK от МК на вывод 11 (959).

Re: Управление байпасом с одного пина

Чт июн 09, 2022 12:45:58

не всеравно все горят а должен только один

Re: Управление байпасом с одного пина

Чт июн 09, 2022 16:41:13

Микроконтроллер есть в наличии из AVR (к примеру ATtiny13A)? Могу написать прошивку для проверки работы 595_х.

Если будут работать нормуль, значит что-то не то делаете...

Re: Управление байпасом с одного пина

Пт июн 10, 2022 11:02:47

я теперь пробую передать шим на 595
на 5 штук

в 2кгц с последующим шимом в 15 бит
пока пробую частоту передать и она подёргивается на светодиоде
посоветовали подключить апаратный вариант

но я привязан к своим блокам в флпроге

Спойлер
Код:
#include "RT_HW_BASE.h"
byte _BitsToByte1_Out = 0;
RT_HW_CLASS_FLPROG_CHECK id_242741573;
uint32_t timeBegin_242741573;
uint16_t period_242741573=100;
uint8_t readVar_242741573(); //--Block SPI.74HC595;
//RT_HW_STRUCT_74HC595_ID z_242741573;
uint8_t qnt_242741573=0;
uint8_t codeErr_242741573=0;
uint8_t spiBUS_242741573=0;
uint8_t spiCS_242741573=255; //--Block 74HC595->for SPI;
uint8_t arr_242741573;
bool _tempVariable_bool;
void setup()
{
}
void loop()
{
    //Плата:1
    _tempVariable_bool = 0;
    bitWrite(_BitsToByte1_Out, 0, _tempVariable_bool);
    _tempVariable_bool = 0;
    bitWrite(_BitsToByte1_Out, 1, _tempVariable_bool);
    _tempVariable_bool = 0;
    bitWrite(_BitsToByte1_Out, 2, _tempVariable_bool);
    _tempVariable_bool = 0;
    bitWrite(_BitsToByte1_Out, 3, _tempVariable_bool);
    _tempVariable_bool = 0;
    bitWrite(_BitsToByte1_Out, 4, _tempVariable_bool);
    _tempVariable_bool = 0;
    bitWrite(_BitsToByte1_Out, 5, _tempVariable_bool);
    _tempVariable_bool = 0;
    bitWrite(_BitsToByte1_Out, 6, _tempVariable_bool);
    _tempVariable_bool = !(0);
    bitWrite(_BitsToByte1_Out, 7, _tempVariable_bool);
    //===============74HC595================
    if(id_242741573.dir==0)
    {
        spiBUS_242741573=(4); //--getting SPI bus.ext;
        spiCS_242741573=15; //--getting SPI cs.user;
        codeErr_242741573=RT_HW_Base.spiInitDevice(spiCS_242741573,spiBUS_242741573); //--init SPI bus & cs;
        if(!codeErr_242741573)
        {
            id_242741573.dir=10;
        }
         else
        {
            id_242741573.dir=90;
        }
    }
     //--end if(dir==0);
    if(id_242741573.dir==10)
    {
        RT_HW_Base.FLProgCheckEvent(id_242741573,timeBegin_242741573,'E',period_242741573);
        if(id_242741573.state==1)
        {
            readVar_242741573();
            id_242741573.dir=20;
        }
        if(id_242741573.state==2)
        {
            if(readVar_242741573())
            {
                id_242741573.state=3;
                id_242741573.dir=20;
            }
        }
    }
    if(id_242741573.dir==20)
    {
        RT_HW_Base.SPIwrite(4000000,1,SPI_MODE0,arr_242741573,spiCS_242741573,spiBUS_242741573); //--SPI.func=1 output v8*1;
        id_242741573.dir=10;
    }
    //==========================
}
bool _isTimer(unsigned long startTime, unsigned long period)
{
    unsigned long currentTime;
    currentTime = millis();
    if (currentTime>= startTime)
    {
        return (currentTime>=(startTime + period));
    }
     else
    {
        return (currentTime >=(4294967295-startTime+period));
    }
}
uint8_t readVar_242741573()
{
    if(arr_242741573!=(uint8_t)(_BitsToByte1_Out))
    {
        arr_242741573=(uint8_t)(_BitsToByte1_Out);
        return 1;
    }
     else
    {
        return 0;
    }
}
 //--func=1->check v8;
Ответить