【CW32模块使用】ADS1115多路模数转换器

2024-11-01 武汉芯源(CW32生态社区公众号)
开发板,CW32F030C8T6,武汉芯源 开发板,CW32F030C8T6,武汉芯源 开发板,CW32F030C8T6,武汉芯源 开发板,CW32F030C8T6,武汉芯源

ADS1115 器件是兼容 IIC 的 16 位高精度低功耗模数转换器 (ADC),采用超小型无引线 X2QFN-10 封装和 VSSOP-10 封装。ADS111x 器件采用了低漂移电压基准和振荡器。ADS1114 和 ADS1115 还采用可编程增益放大器(PGA)和数字比较器。这些特性加以较宽的工作电源电压范围使得 ADS1115 非常适合功率与空间受限的传感器测量。


ADS111x 可在数据速率高达每秒 860 个样本 (SPS) 的情况下执行转换。PGA 可提供从 ±256mV 到±6.144V 的输入范围,从而实现精准的大小信号测量。ADS1115 具有 一个输入多路复用器 (MUX),可实现两次差动输入测量或四次单端输入测量。在ADS1115 中可使用数字比较器进行欠压和过压检测。ADS1115既可在连续转换模式下工作,也可在单冲模式下工作。在单冲模式下,这些器件可在一次转换后自动断电;因此显著降低了空闲期间的功耗。


1.模块来源

模块实物展示:



2.规格参数

工作电压:2.0-5.5V

工作电流:150uA

采集精度:16位

采集通道:4通道

控制方式:IIC

管脚数量:10 Pin(2.54mm间距排针)


3.移植过程

我们的目标是将例程移植至CW32F030C8T6开发板上【实现4路ADC采集电压功能】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。


3.1查看资料

ADS1115是采用的IIC通信,所以首先要了解IIC的地址与时序,再确定根据寄存器的设置。


器件地址

器件地址的设置见下表:


说明:当模块上的ADDR引脚接入GND时,其器件地址为1001000,最后一位数据是读写位。



时序

下图是读时序,步骤是:


IIC起始信号 -> 发送器件地址+0(写) -> 等待模块应答 -> 应答后发送寄存器地址 -> 等待模块应答 -> 重新发送起始信号 -> 发送器件地址+1(读) -> 等待模块应答 -> 应答后读取高8位数据 -> 读取完毕主机发送应答信号 -> 读取低8位数据 -> 读取完毕主机发送应答信号 -> 发送IIC停止信号



下图是写时序,步骤是:


IIC起始信号 -> 发送器件地址+0(写) -> 等待模块应答 -> 应答后发送寄存器地址 -> 等待模块应答 -> 应答后写入高8位数据 -> 等待模块应答 -> 写入低8位数据 -> 等待模块应答 -> 发送IIC停止信号


寄存器说明

ADS1115有四个寄存器,可通过IIC接口使用地址指针进入。


  • 地址0X00为转换寄存器,它包含最后一次转换的结果。

  • 地址0X01为配置寄存器,用于更改ADS1115的工作模式和查询设备状态。

  • 另外两个寄存器,Lo_thresh和Hi_thresh,设置用于比较器函数的阈值,我们用不到。


配置寄存器有16位,用于控制工作模式、输入选择、数据速率、满量程范围和比较器模式。


第15位:OS,读操作时可以知道当前设备的工作状态;写操作时可以设置单次转换。本文配置为1(必须为断电模式下,当对OS写1时,设备会进入上电模式并完成一次数据转换,然后会自动将OS置0)


第14-12位:MUX为输入多路复用器,对输入模式进行选择,如下图有八种输入模式,分别是四种差分与四种单端输入,本文配置为A0单端输入(0x04)。(单端输入就是测量的数据有两个引脚,一个输出一个地。将测量的输出接入A0引脚,测量的地与ADS1115共地)



第11-9位:PGA为可编程增益放大器,设置FSR(满刻度的范围),本文配置为±4.096V(0x01)后面电压计算公式与这个有关。



第8位:MODE选择持续转换模式与单次转换模式(单次转换模式需要OS位触发),本文配置为连续转换模式(0x00)



第7-5位:DR配置data rate数据传输速率,本文配置为128SPS(0x04)



第4-2位:对比较器的配置,我们不使用,默认为0即可(0x00) 第1-0位:本位配置为关闭比较器并将ALERT/RDY引脚设置为高阻抗模式(0x03)



最终得到的配置结果为1100_0010_1000_0011(0xC283)。


当前配置的是A0的引脚,我们后续获取数据也是从A0引脚读取。


16位转换寄存器以二进制的补码格式保存最后一次转换的结果。需要注意的是,在上电之后,转换寄存器被清除为0,并保持为0,直到第一次转换完成。



实现代码说明


读取到的ADC值如何换算为电压?


以PGA设置为4.96V为例。


电压 = 采集到的ADC值 * 分辨率


分辨率 = 测量电压范围 / (2^AD位数-1) = 4.096 / 2的15次方 = 0.000125V


分辨率也可以在数据手册中查看,见右图。其中125uV = 0.125mV = 0.000125V。



/****************************************************************** 
* 函 数 名 称:WriteADS1115 * 函 数 说 明:向ADS1115的add地址写入dat数据 
* 函 数 形 参: add写入寄存器地址 *             
dat_H写入的高8位数据 *             
dat_L写入的低8位数据 * 函 数 返 回:0写入成功 *             
1写入器件地址无应答 *             
2写入寄存器地址无应答 
* 作       者:LC 
* 备       注:器件地址=0X90
******************************************************************/
uint8_t WriteADS1115(uint8_t add, uint8_t dat_H, uint8_t dat_L)
{    
IIC_Start();//起始信号    
IIC_Write(0x90);//器件地址    
if( IIC_Wait_Ack() == 1 )        
return 1;    
IIC_Write(add);//寄存器地址    
if( IIC_Wait_Ack() == 1 )        
return 2;    
IIC_Write(dat_H);//写入高8位    
IIC_Wait_Ack();//等待应答    
IIC_Write(dat_L);//写入低8位    
IIC_Wait_Ack();//等待应答    
IIC_Stop();//停止信号    
return (0);}


/******************************************************************* 函 数 名 称:ReadADS1115 * 函 数 说 明:读取ADS1115的数据 
* 函 数 形 参:add读取的寄存器地址
* 函 数 返 回:-1-读取失败  其他-读取成功
* 作       者:LC
* 备       注:无
******************************************************************/float ReadADS1115(unsigned char add){    int i =0;    unsigned char dat[2]={0};    unsigned int num = 0;    float ret=0;    IIC_Start();//起始信号    IIC_Write(0x90);//器件地址+写    if( IIC_Wait_Ack() == 1 )        return -1;    IIC_Write(add);//寄存器地址    if( IIC_Wait_Ack() == 1 )        return -1;    do{      //超时判断      i++;      if( i > 20 ) return -1;      delay_1ms(1);      IIC_Start();//重新发送起始信号      IIC_Write(0x91);//器件地址+读    }while(IIC_Wait_Ack() == 1);
   dat[0]=IIC_Read();//读高8位数据    IIC_Send_Ack(0);//应答    dat[1]=IIC_Read();//读低8位数据    IIC_Send_Ack(1);//非应答    IIC_Stop();//发送停止信号    //数据整合    num =  ((dat[0]<<8) | (dat[1]));    //分辨率计算:测量电压范围/(2^AD位数-1)    //    分辨率= 4.096/2^15=0.000125    //      电压= 采集到的ADC值 * 分辨率    if(num>32768)        ret=(65535-num)*0.000125;    else        ret=num*0.000125;
   return ret;}


3.2 引脚选择



3.3 移植至工程


工程模板参考入门手册的工程模板


移植步骤中的导入.c和.h文件与之前的文章“【CW32模块使用】DHT11温湿度传感器”相同,只是将.c和.h文件更改为bsp_ads1115.c与bsp_ads1115.h。这里不再过多讲述,移植完成后面修改相关代码。


在文件bsp_ads1115.c中,编写如下代码。

/* * Change Logs: * Date           Author       Notes * 2024-06-20     LCKFB-LP    first version */
#include "bsp_ads1115.h"#include "stdio.h"
/****************************************************************** * 函 数 名 称:ADS1115_GPIO_Init * 函 数 说 明:对IIC引脚初始化 * 函 数 形 参:无 * 函 数 返 回:无 * 作       者:LC * 备       注:1100_0010_1000_0011  WriteADS1115(0x01,0xc2,0x83);******************************************************************/void ADS1115_GPIO_Init(void){    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化结构体
   RCC_ADS1115_ENABLE();        // 使能GPIO时钟
   GPIO_InitStruct.Pins = GPIO_SCL|GPIO_SDA;               // GPIO引脚    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;             // 开漏输出    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;                // 输出速度高    GPIO_Init(PORT_ADS1115, &GPIO_InitStruct);              // 初始化
   //写入配置参数    WriteADS1115(0x01,0xC2,0x83);}
/****************************************************************** * 函 数 名 称:IIC_Start * 函 数 说 明:IIC起始信号 * 函 数 形 参:无 * 函 数 返 回:无 * 作       者:LC * 备       注:无******************************************************************/void IIC_Start(void){        SDA_OUT();
       SDA(1);        delay_us(5);        SCL(1);        delay_us(5);
       SDA(0);        delay_us(5);        SCL(0);        delay_us(5);
}/****************************************************************** * 函 数 名 称:IIC_Stop * 函 数 说 明:IIC停止信号 * 函 数 形 参:无 * 函 数 返 回:无 * 作       者:LC * 备       注:无******************************************************************/void IIC_Stop(void){        SDA_OUT();        SCL(0);        SDA(0);
       SCL(1);        delay_us(5);        SDA(1);        delay_us(5);
}/****************************************************************** * 函 数 名 称:IIC_Send_Ack * 函 数 说 明:主机发送应答 * 函 数 形 参:0应答  1非应答 * 函 数 返 回:无 * 作       者:LC * 备       注:无******************************************************************/void IIC_Send_Ack(unsigned char ack){        SDA_OUT();        SCL(0);        SDA(0);        delay_us(5);        if(!ack) SDA(0);        else     SDA(1);        SCL(1);        delay_us(5);        SCL(0);        SDA(1);}/****************************************************************** * 函 数 名 称:IIC_Wait_Ack * 函 数 说 明:等待从机应答 * 函 数 形 参:无 * 函 数 返 回:1=无应答   0=有应答 * 作       者:LC * 备       注:无******************************************************************/
unsigned char IIC_Wait_Ack(void){
       char ack = 0;        unsigned char ack_flag = 10;        SDA_IN();        SDA(1);        delay_us(5);        SCL(1);        delay_us(5);        while( (GETSDA()==1) && ( ack_flag ) )        {                ack_flag--;                delay_us(5);        }
       if( ack_flag <= 0 )        {                IIC_Stop();                return 1;        }        else        {                SCL(0);                SDA_OUT();        }        return ack;}/****************************************************************** * 函 数 名 称:IIC_Write * 函 数 说 明:IIC写一个字节 * 函 数 形 参:dat写入的数据 * 函 数 返 回:无 * 作       者:LC * 备       注:无******************************************************************/void IIC_Write(unsigned char dat){        int i = 0;        SDA_OUT();        SCL(0);//拉低时钟开始数据传输
       for( i = 0; i < 8; i++ )        {                SDA( (dat & 0x80) >> 7 );                                delay_us(2);                dat<<=1;                delay_us(6);                SCL(1);                delay_us(4);                SCL(0);                delay_us(4);
       }}
/****************************************************************** * 函 数 名 称:IIC_Read * 函 数 说 明:IIC读1个字节 * 函 数 形 参:无 * 函 数 返 回:读出的1个字节数据 * 作       者:LC * 备       注:无******************************************************************/unsigned char IIC_Read(void){        unsigned char i,receive=0;    SDA_IN();//SDA设置为输入    for(i=0;i<8;i++ )        {        SCL(0);        delay_us(5);        SCL(1);        delay_us(5);        receive<<=1;        if( GETSDA() )        {            receive|=1;        }        delay_us(5);    }  return receive;}
/****************************************************************** * 函 数 名 称:WriteADS1115 * 函 数 说 明:向ADS1115的add地址写入dat数据 * 函 数 形 参:add写入寄存器地址 dat_H写入的高8位数据  dat_L写入的低8位数据 * 函 数 返 回:0写入成功 1写入器件地址无应答  2写入寄存器地址无应答 *              3写入高8位数据无应答  4写入低8位数据无应答 * 作       者:LC * 备       注:器件地址=0X90******************************************************************/uint8_t WriteADS1115(uint8_t add,uint8_t dat_H,uint8_t dat_L){          IIC_Start();          IIC_Write(0x90);          if( IIC_Wait_Ack() == 1 )          {                  printf("error 1\r\n");                   return 1;          }          IIC_Write(add);          if( IIC_Wait_Ack() == 1 )          {                  printf("error 2\r\n");                  return 2;          }          IIC_Write(dat_H);          IIC_Wait_Ack();          IIC_Write(dat_L);          IIC_Wait_Ack();          IIC_Stop();          return (0);}


/****************************************************************** * 函 数 名 称:ReadADS1115 * 函 数 说 明:读取ADS1115的数据 * 函 数 形 参:add读取的寄存器地址 * 函 数 返 回:-1-读取失败  其他-读取成功 * 作       者:LC * 备       注:无******************************************************************/float ReadADS1115(unsigned char add){  int i =0;  unsigned char dat[2]={0};  unsigned int num = 0;  float ret=0;  IIC_Start();//起始信号  IIC_Write(0x90);//器件地址+写  if( IIC_Wait_Ack() == 1 )      return -1;  IIC_Write(add);//寄存器地址  if( IIC_Wait_Ack() == 1 )      return -1;  do{    //超时判断    i++;    if( i > 20 ) return -1;    delay_ms(1);    IIC_Start();//重新发送起始信号    IIC_Write(0x91);//器件地址+读  }while(IIC_Wait_Ack() == 1);
 dat[0]=IIC_Read();//读高8位数据  IIC_Send_Ack(0);//应答  dat[1]=IIC_Read();//读低8位数据  IIC_Send_Ack(1);//非应答  IIC_Stop();//发送停止信号  //数据整合  num =  ((dat[0]<<8) | (dat[1]));
       //数值计算取决于PGA配置    //2的15次方=32768    //设置的最大量程4.096//        if(num>32768)//                ret=((float)(65535-num)/32768.0)*4.096;//        else//                ret=((float)num/32768.0)*4.096;
 //分辨率计算:测量电压范围/(2^AD位数-1)  //    分辨率= 4.096/2^15=0.000125  //      电压= 采集到的ADC值 * 分辨率  if(num>32768)      ret=(65535-num)*0.000125;  else      ret=num*0.000125;
 return ret;}


在文件bsp_ads1115.h中,编写如下代码。


/* * Change Logs: * Date           Author       Notes * 2024-06-20     LCKFB-LP    first version */#ifndef _BSP_ADS1115_H_#define _BSP_ADS1115_H_
#include "board.h"
#define RCC_ADS1115_ENABLE()      __RCC_GPIOB_CLK_ENABLE()#define PORT_ADS1115              CW_GPIOB
#define GPIO_SCL                  GPIO_PIN_8#define GPIO_SDA                  GPIO_PIN_9
//SDA输入模式#define SDA_IN()   {                                                     \                        GPIO_InitTypeDef GPIO_InitStruct;                \                        GPIO_InitStruct.Pins = GPIO_SDA;                 \                        GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP;   \                        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         \                        GPIO_Init(PORT_ADS1115, &GPIO_InitStruct);       \                   }//SDA输出模式#define SDA_OUT()  {                                                                                                         \                        GPIO_InitTypeDef GPIO_InitStruct;                \                        GPIO_InitStruct.Pins = GPIO_SDA;                 \                        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;      \                        GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         \                        GPIO_Init(PORT_ADS1115, &GPIO_InitStruct);       \                    }
#define SCL(BIT)  GPIO_WritePin( PORT_ADS1115, GPIO_SCL, BIT?GPIO_Pin_SET:GPIO_Pin_RESET )#define SDA(BIT)  GPIO_WritePin( PORT_ADS1115, GPIO_SDA, BIT?GPIO_Pin_SET:GPIO_Pin_RESET )#define GETSDA()  GPIO_ReadPin( PORT_ADS1115, GPIO_SDA )



void ADS1115_GPIO_Init(void);unsigned char WriteADS1115(unsigned char add,unsigned char dat_H,unsigned char dat_L);float ReadADS1115(unsigned char add);#endif


4.移植验证

在自己工程中的main主函数中,编写如下。


/* * Change Logs: * Date           Author       Notes * 2024-06-20     LCKFB-LP    first version */#include "board.h"#include "stdio.h"#include "bsp_uart.h"#include "bsp_ads1115.h"
int32_t main(void){    board_init();        // 开发板初始化
   uart1_init(115200);        // 串口1波特率115200
   ADS1115_GPIO_Init();
   printf("demo start\r\n");    while(1)    {        //当前设置最大量程为4.096V        printf("A0 = %.4f\r\n", ReadADS1115(0x00) );//读取A0的值        delay_ms(1000);    }}


移植现象:将A0接入GND、3.3V和5V。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由samsara转载自武汉芯源(CW32生态社区公众号),原文标题为:【CW32模块使用】ADS1115多路模数转换器,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】基于CW32的AS608指纹模块的应用

AS608是一款集成了指纹图像采集和指纹比对算法的指纹识别模块。它采用了高质量的光学传感器,能够实时采集人体指纹图像,并通过指纹比对算法进行指纹识别。AS608具有高精度、快速、可靠的特点,广泛应用于各种指纹识别场景,如门禁系统、安防系统、考勤系统等。本实验用到了CW32-48F大学计划板、0.96寸OLED显示屏模块、AS608指纹模块及Keil5开发环境。

设计经验    发布时间 : 2023-09-26

【CW32模块使用】SHT30温湿度传感器

SHT30是一款IIC通信的温湿度传感器,支持-40~125℃温度和0~100%RH湿度测量,精度高。通过移植例程至CW32F030C8T6开发板,实现了每秒读取温湿度并通过串口输出的功能。

设计经验    发布时间 : 2024-11-08

【经验】基于CW32的超声波模块的应用

C-SR04超声波模块是一种常用的测距模块,其通过发射超声波并接收其反射信号来实现测距功能。具有成本低、精度高、使用简便等特点。本实验用到了CW32F030C8T6小蓝板、0.96寸OLED显示屏、HC-SR04超声波模块及Keil5开发环境。

设计经验    发布时间 : 2023-09-26

2023年电赛A题——国奖开源分享

根据题目要求,本项目拟设计制作一个单相逆变器并联运行系统,本系统以CW32F030C8T6核心板为控制核心,由直流电源、隔离变压器、全桥逆变电路、采集电路、驱动电路、LC低通滤波电路和辅助电源组成。从机采用DQ锁相环进行相位追踪,通过生成双极性SPWM波对全桥逆变电路调制,产生正弦交流电。利用PID算法进行电流、电压闭环控制,逆变器实现稳流,稳压来实现并联,并网运行。

原厂动态    发布时间 : 2023-12-26

【应用】基于国产32位MCU芯片CW32F030C8T6的智能门锁方案,主频64MHz,具备低功耗多功能优势

智能门锁集成3D识别算法、接近检测、指纹输入模块,低功耗计算芯片等于一体,解锁快、功耗低、续航久,现武汉芯源推出一款MCU芯片CW32F030C8T6助力于智能门锁设计。

应用方案    发布时间 : 2023-03-14

基于CW32的无刷直流空心杯电机有感控制驱动方案

空心杯电机(Hollow-Cup Motor)是一种特殊类型的微型无刷直流电机,具有空心的旋转部分。它通常由外部固定的外壳和内部旋转的空心杯组成。空心杯电机具有较高的功率密度和扭矩输出,适用于一些特定的应用场景,如精密仪器、机器人、医疗设备等。空心杯电机的工作原理是基于无刷直流电机的原理。它采用无刷电机的结构,包括定子(固定部分)和转子(旋转部分)。

应用方案    发布时间 : 2024-05-16

Application of CW32F030 in LED PWM Dimming Control Board

The MCU application introduced this time is based on the PWM output control of a microcontroller. Through the RC hardware circuit, a timer combined with software is used to achieve PWM output control with adjustable duty cycle and fixed cycle. The general process is to use a potentiometer to change the duty cycle, and through AD conversion, the duty cycle of the PWM square wave is sent to the LED for display.

应用方案    发布时间 : 2024-11-08

基于CW32的无刷直流空心杯电机无感方波控制驱动方案

本方案采用CW32F030C8T6作为主控芯片,采用无感方波控制算法控制无刷直流空心杯电机。CW32F030C8T6是一款高性能、低功耗的32位微控制器,具有丰富的片上外设资源,可以适合用于电机控制。无感方波控制算法是一种简单有效的电机控制算法,不需要使用霍尔传感器,可以降低硬件成本。

应用方案    发布时间 : 2024-04-23

CW32 is a Low-power 32-bit Microcontroller, Using Arm Cortex-m0+core, Very Suitable for Intelligent Temperature Controllers with Low Power Consumption Requirements

The CW32 designed by Wuhan Xinyuan Semiconductor Co., Ltd. using ARM Cortex-M0+core is a low-power 32-bit microcontroller, currently used in temperature controllers such as air conditioning, floor heating, water heating, and electric heating.

应用方案    发布时间 : 2024-11-08

如何使用CW32单片机通过ESP8266连接OneNET物联网平台,发送温湿度数据到平台,并接受平台的云控制?

本实验使用到了CW32-48F大学计划开发板、DHT11温湿度传感器模块、ESP8266WIFI模块及Keil5开发环境。

设计经验    发布时间 : 2023-12-06

基于CW32F030C8T6芯片通过智能控制技术完成智能小车项目代码和功能说明

本文介绍了使用CW32F030C8T6芯片完成的全国电子竞赛H题智能小车项目。项目核心是利用CW32F030C8T6芯片的强大处理能力和丰富外设支持实现智能控制。硬件方面,包括PWM电机控制、五路循迹模块、OLED显示和角度传感器。软件部分采用结构化编程,涵盖底层驱动、外设控制和主程序逻辑。主程序包含变量定义、任务执行、硬件初始化等,支持模式切换以应对不同竞赛场景。

设计经验    发布时间 : 2024-08-27

CW32F030C8T6 MCU Supports an Ultra Wide Temperature Range of -40~105 ℃, Ensures Safe and Stable Operation of Portable Charging Gun

Wuhan Core Source Semiconductor‘s CW32F030C8T6 serves as the core control chip of the portable charging gun of Sihao New Energy Vehicle, indicating that CW32F030C8T6 microcontroller has been recognized by frontline host manufacturers.

应用方案    发布时间 : 2024-11-07

【经验】基于武汉芯源半导体CW32F030C8T6和启英泰伦CI-C22GS02制作的智能语音分类垃圾桶的配置教程

简介:基于武汉芯源半导体CW32F030C8T6和启英泰伦CI-C22GS02制作的智能语音分类垃圾桶,能够实现识别语音来判断垃圾种类,同时打开相应的垃圾桶,可外接普通按键或者触摸按键,也可以外接红外接近传感器来打开对应的垃圾桶。

设计经验    发布时间 : 2023-08-05

基于CW32的智能家居系统

该系统采用CW32F030单片机作为核心控制器,通过各种传感器实时监测室内环境参数,并根据预设的阈值进行相应控制。例如,当室内光照不足时,系统会自动打开灯光,确保室内光线充足。室内温湿度数据和空气质量通过屏幕显示,并实时上传到云平台,以实现远程监控。

设计经验    发布时间 : 2024-02-07

使用CW32F030C8T6芯片完成的全国电子竞赛H题智能小车项目详解

本文简述了使用CW32F030C8T6芯片开发的智能小车,适用于全国电子竞赛。小车具备电机控制、循迹、OLED显示和角度传感功能。软件结构化设计,实现多任务操作和模式切换。通过PWM和编码器精确控制电机,循迹模块和角度传感器数据通过串口处理。项目展示了芯片在智能控制应用中的潜力。

设计经验    发布时间 : 2024-10-01

展开更多

电子商城

查看更多

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:华芯微特

品类:开发板

价格:¥225.0000

现货: 1,000

品牌:华芯微特

品类:开发板

价格:¥225.0000

现货: 1,000

品牌:广芯微电子

品类:模块

价格:¥13.0000

现货: 305

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:广芯微电子

品类:开发板

价格:¥101.4000

现货: 302

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:开发板

价格:¥259.1316

现货:48

品牌:RENESAS

品类:开发板

价格:¥4,100.0000

现货:20

品牌:迅为

品类:开发板

价格:¥378.2000

现货:15

品牌:RENESAS

品类:开发板

价格:¥5,052.4560

现货:8

品牌:RENESAS

品类:EVALUATION BOARD

价格:¥9,620.4300

现货:7

品牌:RENESAS

品类:开发工具

价格:¥19.9940

现货:7

品牌:RENESAS

品类:DEMO BOARD

价格:¥634.3680

现货:7

品牌:华普微电子

品类:开发板

价格:¥200.0000

现货:5

品牌:RENESAS

品类:开发板

价格:¥2,200.0000

现货:5

品牌:RENESAS

品类:开发板

价格:¥4,000.0000

现货:5

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

PCB快板打样定制

可加工PCB层数:1-30层;板材类型:FR4板/铝基板/铜基板/刚扰结合板/FPC板/高精密板/Rogers高频板;成品尺寸:5*5mm~53*84cm;板厚:0.1~5.0mm。

最小起订量: 1 提交需求>

SMT贴片加工

可贴PCB板厚范围:0.6~2.0mm,也支持生产软硬接合板,拼板长宽:50*50mm~550*500mm,PCBA快速贴片支持01005CHIP元件。

最小起订量: 1片 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面