头像-181450

zhczlzhang

  • 上海市奉贤区
  • 单片机、嵌入式、电源技术、模拟技术
  • 消费电子

个人成就

获得 2 次赞

帮助过6人

大家看下电源电路那里出问题了只有24V没有5V跟3.3V

哇,好难受,根据公司工程师给的电源电路设计打板的,这是一个24V转5V再转3.3V的电源电路,工程师打板了一块,他的就很正常,我的板子就只有在24v,没有5V跟3.3V,24V指示灯再亮,5V指示灯不亮,U2为MP2303,找了好久问题,都找不到,一级级的量下去,L4L6那里是24V,再往下就没有了?实在找不到问题,求指点?请问下原理图有问题吗?

单片机如何实现检测到微波炉内盒饭

如题,如何用单片机来检测到微波炉内有没有盒饭,不是说在微波炉内的改装,而是在外部使用什么传感器能感应到?我的想法是在门口加装距离感应器,检测到门开关来判断微波炉内有没有被放入锅货物,但是还是不太好?大家有什么想法。

ESP8266关于远程控制的难点

最近做一个智能家居控制,用STC做控制MCU,ESP8266做网络连接,控制流程是这样的,我的控制板连上路由器WIFI,建立SEVER,8080端口,然后通过花生壳映射到公网,后台通过公网IP来控制控制板。这个测试通过了。然后领导提出了路由器WIFI会自动变换IP地址,到时候IP地址变了,内网就无法映射公网,所有让我们用控制板做客户端来自动重连后台的服务器IP,因为后台的服务器IP地址是不变的。这样路由器IP地址变了也自动重连后台的服务器IP就好。但是查了半天资料,都是ESP8266作为服务端映射到公网的资料,好像没有作为客户端去连接​公网IP​的资料。请教下大家该如何做?有资料最好。​

stc ISP一直在检测单片机

以前一直没有用过STC的单片机,这次设计用上了STC15W401AS-35C-SOP16单片机,电路图参考官方的电路图,因为省掉了晶振与复位电路,内部已集成,所有这个电路设计很方便,但是按照官方的电路设计好了之后,我用CH340的USB TO TTL来下载程序,5V供电,GND接GND,CH340 TX  接MCU RX ,CH340 RX  接MCU TX ,,然后下载程序就一直出现“正在检测单片机”,我试着修改过了最低最高波特率,都不行,又换过了杜邦线,还是不行,求大家支招!头疼。

有关于光耦MOSFET驱动电机的电路连接疑问

最近应用到了MOSFET,以前的知识都还给了大自然,然后突然要用到NP MOSFET。N型MOSFET到是很快弄懂了,就是P型MOSFET还是有点疑问。N沟道的功率MOSFET连接方式:电源输入正极连接到D极,由S极输出;驱动电压的正加在G极,驱动电压的负加在S极。P沟道的功率MOSFET连接方式:电源输入正极连接到S极,由D极输出;驱动电压的正加在S极,驱动电压的负加在G极。若Vg=0vVs点加的电压由3.3v降到0v,Vd点的电压也会由3.3v降到0v。即当s点的电压大于g点的电压,管子就会导通,就会将s点的电压传到d点。导通电压不是图中的3V左右,而是当g点电压为0,s点电压大于0,s点的电压就会传到d点。总结:对于P-mos管,对G点采用的是负逻辑控制。低有效。对于N-MOS管采用的是正逻辑,当Vgs>0即G点电压大于S点电压,管子就会导通,D点电压就会传到S点。当VDS的电压增大,ID就会增大。然后我去ALLdatasheet,发现P型的Vds​是-30V,我还没反应过来,后来一想,我在S端加30V,d端为0V,那不可以了,所有设计了下面的电路图,但是总觉得自己P型驱动有问题,请大家指点下,看我弄得对不对。

大家看下我的光耦驱动N P 型MOSFET电路正确吗

这是我设计的一个单片机驱动光耦控制电机转停的电路,大家看下电路设计对吗?光耦拉高引脚,输出24V,fds9958是P型MOSFET,fds9945是n型MOSFET,fds9958 S,G两脚导通,D输出在电机正极,fds9945 G脚为24V,S脚接地,D脚接电机负极。2个光耦同时输出高低电平控制电机运作,这样可以吗?

【已解决】基于stm32f4的hx711一直称不出来重量

手头有一块HX711模块,一直在用51开发,开发的很好,突发奇想移植到STM32F4上面去,于是就写了代码,现在问题是编译通过了,下载到板子上去后一直称不出来重量,东西放在上面也不显示加减,很苦恼,调试了2天没结果,网上也没有相应的文章,请大家帮帮忙。代码如下。串口显示结果。 //hx711代码 #include "HX711.h" #include "delay.h" #include "stm32f4xx.h" void AD_init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); GPIO_InitStructure.GPIO_Pin = CLK; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//CLKÒý½Å¶¨ÒåÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//ÉÏÀ­ GPIO_Init(ADIO,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = DATA; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//ÉÏÀ­ GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //DATAÒý½Å¶¨Ò帡¿ÕÊäÈë GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(ADIO,&GPIO_InitStructure); } //**************************************************** //³ÆÖØ1 //**************************************************** unsigned long ReadAD(void) //¶ÁADоƬÊä³öµÄÊý¾Ý¡£ { unsigned long count; unsigned char i; GPIO_SetBits(ADIO,DATA); //delay_us(2); GPIO_ResetBits(ADIO,CLK); //delay_us(2); count=0; //delay_us(2); while(GPIO_ReadInputDataBit(ADIO,DATA)); //delay_us(2); for(i=0;i<24;i++) { GPIO_SetBits(ADIO,CLK); //delay_us(2); count=count<<1; //delay_us(2); GPIO_ResetBits(ADIO,CLK); //delay_us(2); if(GPIO_ReadInputDataBit(ADIO,DATA)) //delay_us(2); count++; //delay_us(2); } GPIO_SetBits(ADIO,CLK); //delay_us(2); count=count^0x800000; delay_us(2); GPIO_ResetBits(ADIO,CLK); //delay_us(2); return(count); } long double filter(void) //»¬¶¯¾ùÖµÂ˲¨·¨µÄº¯Êý¡£ { unsigned long max=0,min=0,SUM,BUF[12],Average; int i=0; for(i=0;i<12;i++) { BUF[i]=ReadAD(); //printf("%ld\r\n",BUF[i]); if(i==0) { max=BUF[0]; min=BUF[0]; } if(i>0) { if(BUF[i]>max) max=BUF[i]; if(BUF[i]<min) min=BUF[i]; } } for(i=0;i<12;i++) { if(!(BUF[i]==max||BUF[i]==min)) { SUM=SUM+BUF[i]; } } Average=SUM/(12-2); return Average; } //主函数 #include "stm32f4xx.h" #include "usart.h" #include "delay.h" #include "main.h" #include "HX711.h" int main(void) { long t=0; delay_init(168); AD_init(); uart_init(115200); while(1) { delay_ms(500); t = ReadAD(); printf("t1=%ld\r\n",t); delay_ms(500); t = filter(); printf("t2=%ld\r\n",t); } }

如何分辨出PCB设计板是几层

领导提供了个PCB设计图,如何在ad里面查看他是几层板设计。我在layer stack manager里面看到的是2层板,但是领导说不是2层,是多层板,但是具体是多少他也不知道。求问如何查看?