0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32設(shè)計(jì)的姿態(tài)感應(yīng)剎車燈

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2025-01-09 11:29 ? 次閱讀

一、項(xiàng)目介紹

由于自行車本身沒有帶指示燈,比如剎車指示燈等,所以自行車的安全性并不是很好,如果人們?cè)隍T自行車時(shí)緊急剎車,后車無法及時(shí)判斷前方自行車的行為,容易造成交通事故。

本項(xiàng)目為自行車騎行者提供一種智能化的安全提示系統(tǒng),采用ADXL345陀螺儀STM32F103C8T6主控芯片及四枚LED燈,通過實(shí)時(shí)監(jiān)測(cè)自行車的加速度變化,實(shí)現(xiàn)自動(dòng)剎車燈功能。

本項(xiàng)目實(shí)現(xiàn)了通過安裝ADXL345陀螺儀和四枚LED燈還有STM32F103C8T6主控芯片來實(shí)現(xiàn)自行車自動(dòng)剎車燈的功能。當(dāng)自行車上安裝了該設(shè)備后,ADXL345通過IIC通信協(xié)議將X,Y,Z三軸的加速度實(shí)時(shí)值發(fā)送給SMT32F103C8T6主控芯片,并結(jié)合STM32高級(jí)定時(shí)器的PWM功能,輸出不同占空比的脈沖,控制不同的LED燈輸出多種亮度等級(jí),從而控制不同的LED的開關(guān)以及明暗,并且通過不同亮度的紅光和綠光混合,能夠得到黃色的LED燈光。這樣,在自行車急剎或者加速時(shí),實(shí)時(shí)地控制LED燈的亮度和顏色,讓后方車輛能夠更清楚地了解前方自行車的行為,從而做出快速的反應(yīng),保障騎行者以及后車的安全。同時(shí),該系統(tǒng)也能夠提高自行車的可見性,并且對(duì)于追求低碳環(huán)保的人群來說,讓自行車既能低碳環(huán)保,又能夠鍛煉身體。

整個(gè)項(xiàng)目的成品構(gòu)造也很簡(jiǎn)單,一個(gè)盒子,一塊鋰電池,一個(gè)ADXL345陀螺儀模塊、一個(gè)C8T6單片機(jī)、4顆高亮度LED燈即可。

下面這是做出的測(cè)試模型,通過實(shí)驗(yàn)板測(cè)試項(xiàng)目的整個(gè)功能

image-20230618184936424

二、設(shè)計(jì)思路

2.1 項(xiàng)目目標(biāo)

本項(xiàng)目通過安裝ADXL345陀螺儀和四枚LED燈還有STM32F103C8T6主控芯片來實(shí)現(xiàn)自行車自動(dòng)剎車燈的功能,使得自行車在急剎或者加速時(shí),實(shí)時(shí)地控制LED燈的亮度和顏色,提高其可見性,降低交通事故的風(fēng)險(xiǎn)。同時(shí),該系統(tǒng)還能夠使自行車既能低碳環(huán)保,又能夠鍛煉身體。

2.2 項(xiàng)目硬件構(gòu)成

(1)自行車:作為安裝系統(tǒng)的物體,需要有一個(gè)固定的位置來安裝ADXL345陀螺儀和四枚LED燈。

(2)ADXL345陀螺儀:通過IIC通信協(xié)議與STM32F103C8T6主控芯片通信,并將X、Y、Z三軸的加速度實(shí)時(shí)值發(fā)送給SMT32F103C8T6主控芯片。

(3)四枚LED燈:使用不同亮度的紅光和綠光混合,能夠得到黃色的LED燈光。通過控制其亮度和顏色來提高自行車的可見性。

(4)STM32F103C8T6主控芯片:根據(jù)接收到的ADXL345數(shù)據(jù),結(jié)合STN32的高級(jí)定時(shí)器的PWM功能,輸出不同占空比的脈沖,控制不同的LED燈輸出多種亮度等級(jí)。

2.3 項(xiàng)目功能實(shí)現(xiàn)

(1)自行車加速度監(jiān)測(cè):ADXL345陀螺儀通過IIC通信協(xié)議與STM32F103C8T6主控芯片通信,實(shí)時(shí)地感知自行車的加速度變化。

(2)LED燈亮度和顏色控制:STM32F103C8T6主控芯片運(yùn)用高級(jí)定時(shí)器的PWM功能,能夠輸出不同占空比的脈沖,并控制不同的LED燈輸出多種亮度等級(jí),通過不同亮度的紅光和綠光混合,能夠得到黃色的LED燈光,提高自行車的可見性。

(3)系統(tǒng)安裝和調(diào)試:需要將ADXL345陀螺儀和四枚LED燈與STM32F103C8T6主控芯片連接起來,并進(jìn)行系統(tǒng)測(cè)試和調(diào)試。

2.4 項(xiàng)目的開發(fā)價(jià)值

本項(xiàng)目的存在價(jià)值主要體現(xiàn)在提升自行車騎行安全性、增強(qiáng)自行車可見性以及推動(dòng)低碳環(huán)保理念的傳播等多個(gè)方面。

安全性是本項(xiàng)目最核心的價(jià)值之一。在自行車騎行中,由于缺乏像汽車那樣的剎車燈等警示系統(tǒng),騎行者在急剎車或加速時(shí),后方車輛往往難以及時(shí)做出反應(yīng),增加了交通事故的風(fēng)險(xiǎn)。通過該系統(tǒng)的實(shí)現(xiàn),利用ADXL345陀螺儀實(shí)時(shí)檢測(cè)自行車的運(yùn)動(dòng)狀態(tài),并通過PWM控制LED燈的亮度和顏色變化,能夠在剎車或加速時(shí),及時(shí)向后方車輛傳遞明顯的信號(hào),從而提高騎行者和其他交通參與者的安全性。

增強(qiáng)可見性是另一個(gè)重要的價(jià)值點(diǎn)。特別是在夜間或低能見度條件下,騎行者往往容易被忽視,增加了與其他車輛發(fā)生碰撞的風(fēng)險(xiǎn)。該系統(tǒng)通過控制LED燈的亮度和顏色,不僅提升了自行車的視覺存在感,還能通過紅綠光的混合形成黃色警示效果,使騎行者在夜間或復(fù)雜環(huán)境中更加容易被發(fā)現(xiàn),大大減少了交通事故的發(fā)生幾率。

在如今提倡低碳環(huán)保的社會(huì)背景下,自行車作為綠色出行方式,正得到越來越多人的青睞。通過智能化的設(shè)計(jì)和系統(tǒng)的集成,項(xiàng)目不僅提升了自行車的安全性能,也進(jìn)一步增強(qiáng)了自行車作為環(huán)保出行工具的吸引力。這種系統(tǒng)化的智能升級(jí),不僅符合現(xiàn)代城市交通發(fā)展趨勢(shì),也符合綠色環(huán)保的理念,助力推動(dòng)低碳出行方式的普及。

本項(xiàng)目在保障騎行者安全的同時(shí),也促進(jìn)了智能硬件與綠色出行的結(jié)合,具有重要的實(shí)用價(jià)值和社會(huì)意義。

三、系統(tǒng)測(cè)試

3.1 功能樣機(jī)安裝與焊接

繪制好電路原理圖之后,按照原理圖將自動(dòng)剎車燈系統(tǒng)的各個(gè)模塊安裝在事先購(gòu)買好的洞洞板上,然后用導(dǎo)線將他們連接在一起,最后再焊接在一起,做成完整的自動(dòng)剎車燈電路板。

image-20230618184608787

3.2 ADXL345模塊調(diào)試

當(dāng)上電后,將自動(dòng)剎車燈電路的串口2外設(shè)引腳連接至PC端,將加速度解算后的實(shí)際值發(fā)送至PC端,通過PC端串口調(diào)試助手顯示出具體數(shù)值,再觀察數(shù)值是否符合常理。

image-20230618184700297

通過顯示的數(shù)據(jù)信息,可以推測(cè)出ADXL345陀螺儀能夠正常工作。

3.3 實(shí)物調(diào)試

最后階段,將對(duì)自行車自動(dòng)剎車燈進(jìn)行實(shí)物調(diào)試,確定其基本功能能夠正常實(shí)現(xiàn)。

當(dāng)系統(tǒng)上電后,左右各一枚LED發(fā)出低亮黃色燈光,如下圖。

image-20230618184801135

靜置30S后,所有LED均熄滅,如下圖。

image-20230618184825767

當(dāng)檢測(cè)到震動(dòng)后,重新亮起兩盞黃色LED燈,如下圖。

image-20230618184849795

當(dāng)檢測(cè)到剎車時(shí),四枚LED燈均以高亮發(fā)出紅色燈光,如下圖。

image-20230618184910210

結(jié)合自行車自動(dòng)剎車燈的功能需求和實(shí)物調(diào)試結(jié)果,可以發(fā)現(xiàn),調(diào)試結(jié)果完全符合自動(dòng)剎車燈的預(yù)期功能。

四、代碼設(shè)計(jì)

單片機(jī)相關(guān)的開發(fā)工具、傳感器模塊代碼可以去網(wǎng)盤里下載:

[https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink]

4.1 主函數(shù)

#include "stm32f10x.h"
#include "usart.h"
#include "led.h"
#include "RTC_Time.h" 
#include < stdio.h >
#include "delay.h"
#include "sys.h"
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#include "adxl345.h"
int main(void)
{
	  u32 flag=0;
	  short x, y, z;
    float accelerated;
	  LED_GPIO_Config();//初始化LED
    USART2_Config();
    delay_init(); //延時(shí)函數(shù)初始化
  	PWM_LED_INIT();   //PWM   PA8-9
	  LED_Init();    //PB7 LED-R
	  PBout(7) = 1;     
	  ADXL345_Init(); //PB 10,11
    ADXL345_Read_Average(&x, &y, &z, 20);
    ADXL345_AUTO_Adjust((char *)&x, (char *)&y, (char *)&z);
    TIM_SetCompare1(TIM1, 50); //設(shè)置TIMx捕獲比較1寄存器(通道1)值(脈沖寬度)   占空比%20
    TIM_SetCompare2(TIM1, 50); //設(shè)置TIMx捕獲比較2寄存器(通道2)值(脈沖寬度)   占空比%20
    while (1)
    {
        ADXL345_Read_Average(&x, &y, &z, 5);   //讀加速度值
			  accelerated=(x*3.9/1000*9.8);          //加速度實(shí)際值
			printf("X=%4.1f   Y=%4.1f  Z=%4.1frn",accelerated,(y*3.9/1000*9.8),(z*3.9/1000*9.8));
			while(flag >425)
			{
				 TIM_SetCompare1(TIM1, 0);          //通道2 占空比%0                         
				 TIM_SetCompare2(TIM1, 0);          //通道2 占空比%0 
			   ADXL345_Read_Average(&x, &y, &z, 5);
				 accelerated=(x*3.9/1000*9.8);
			 	if(accelerated< -5||accelerated >5) 
				{
					break;
				}
			}
				flag++; 
		  if(accelerated< -4)
				{
					//四個(gè)LED低電平導(dǎo)通		   
					TIM_SetCompare1(TIM1, 0);            //GREEN不亮                          
					TIM_SetCompare2(TIM1, 1000);         //RED高亮
					PBout(7) = 0;	
					flag=0;    
				}
				if(accelerated >0)
				{
					PBout(7) = 1;
					TIM_SetCompare1(TIM1, 50);           //RED低亮  
					TIM_SetCompare2(TIM1, 50);           //GREEN低亮
         }
				if(accelerated >5)
				{
             	flag=0; 
				}
	}	
}

4.2 LED燈控制

#include "led.h"
#include "delay.h"
void LED_GPIO_Config(void)
{	
	//定義一個(gè)GPIO_InitTypeDef 類型的結(jié)構(gòu)體,名字叫GPIO_InitStructure 
	GPIO_InitTypeDef  GPIO_InitStructure;
	//使能GPIOC的外設(shè)時(shí)鐘
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	//選擇要用的GPIO引腳		
	GPIO_InitStructure.GPIO_Pin =GPIO_Pin_13;
	///設(shè)置引腳模式為推免輸出模式			 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 
	//設(shè)置引腳速度為50MHZ
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	//調(diào)用庫(kù)函數(shù),初始化GPIO
	GPIO_Init(GPIOC, &GPIO_InitStructure);
}
void TIME_INIT()
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
    TIM_OCInitTypeDef TIM_OCInitStructure; //根據(jù)TIM_OCInitStruct中指定的參數(shù)初始化外設(shè)TIMx
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
    //TIM1定時(shí)器初始化  10ms
    TIM_TimeBaseInitStructure.TIM_Period = 999; 
    TIM_TimeBaseInitStructure.TIM_Prescaler = 719;
    TIM_TimeBaseInitStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM1, &TIM_TimeBaseInitStructure);
    //TIM1的PWM配置	 
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_Pulse = 0;//設(shè)置初始PWM脈沖寬度為0
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //PWM輸出使能
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//當(dāng)定時(shí)器計(jì)數(shù)值小于CCR_Val時(shí)為低電平
	  //通道的使能
    TIM_OC1Init(TIM1, &TIM_OCInitStructure);  //通道1
    TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable); 
		TIM_OC2Init(TIM1, &TIM_OCInitStructure);  //通道2
    TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);	
		TIM_ARRPreloadConfig(TIM1, ENABLE);	  //使能TIM1重載寄存器ARR
    TIM_Cmd(TIM1, ENABLE);                //使能
    TIM_CtrlPWMOutputs(TIM1, ENABLE);     //高級(jí)定時(shí)器必須加
}
void PWM_LED_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
	  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);  //GPIOA8,9,10是TIM1的通道1,2,3
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 ;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復(fù)用推挽輸出
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    TIME_INIT();
}
void LED_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
  //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}

4.3 adxl345.c

#include "adxl345.h"
#include "sys.h"
#include "delay.h"
#include "math.h"   
u8 ADXL345_Init(void)
{				  
	IIC_Init();							//初始化IIC總線	
	if(ADXL345_RD_Reg(DEVICE_ID)==0XE5)	//讀取器件ID
	{  
		ADXL345_WR_Reg(0X31,0X2B);	//低電平中斷輸出,13位全分辨率,輸出數(shù)據(jù)右對(duì)齊,16g量程 
		ADXL345_WR_Reg(0X2C,0x0A);		  //數(shù)據(jù)輸出速度為100Hz
		ADXL345_WR_Reg(0X2D,0x28);	  //鏈接使能,測(cè)量模式
		ADXL345_WR_Reg(0X2E,0x00);	//不使用中斷		 
	 	ADXL345_WR_Reg(0X1E,0x00);
		ADXL345_WR_Reg(0X1F,0x00);
		ADXL345_WR_Reg(0X20,0x00);	
		return 0;
	}			
	return 1;	   								  
}   
//寫ADXL345寄存器
//addr:寄存器地址
//val:要寫入的值
//返回值:無
void ADXL345_WR_Reg(u8 addr,u8 val) 
{
	IIC_Start();  				 
	IIC_Send_Byte(ADXL_WRITE);  //發(fā)送寫器件指令	 
	IIC_Wait_Ack();	   
  IIC_Send_Byte(addr);   			//發(fā)送寄存器地址
	IIC_Wait_Ack(); 	 										  		   
	IIC_Send_Byte(val);     		//發(fā)送值					   
	IIC_Wait_Ack();  		    	   
  IIC_Stop();						      //產(chǎn)生一個(gè)停止條件 	   
}
//讀ADXL345寄存器
//addr:寄存器地址
//返回值:讀到的值
u8 ADXL345_RD_Reg(u8 addr) 		
{
	u8 temp=0;		 
	IIC_Start();  				 
	IIC_Send_Byte(ADXL_WRITE);	//發(fā)送寫器件指令	 
	temp=IIC_Wait_Ack();	   
    IIC_Send_Byte(addr);   		//發(fā)送寄存器地址
	temp=IIC_Wait_Ack(); 	 										  		   
	IIC_Start();  	 	   		//重新啟動(dòng)
	IIC_Send_Byte(ADXL_READ);	//發(fā)送讀器件指令	 
	temp=IIC_Wait_Ack();	   
    temp=IIC_Read_Byte(0);		//讀取一個(gè)字節(jié),不繼續(xù)再讀,發(fā)送NAK 	    	   
    IIC_Stop();					//產(chǎn)生一個(gè)停止條件 	    
	return temp;				//返回讀到的值
}  
//讀取ADXL的平均值
//x,y,z:讀取10次后取平均值
void ADXL345_RD_Avval(short *x,short *y,short *z)
{
	short tx=0,ty=0,tz=0;	   
	u8 i;  
	for(i=0;i< 10;i++)
	{
		ADXL345_RD_XYZ(x,y,z);
		delay_ms(10);
		tx+=(short)*x;
		ty+=(short)*y;
		tz+=(short)*z;	   
	}
	*x=tx/10;
	*y=ty/10;
	*z=tz/10;
} 
//自動(dòng)校準(zhǔn)
//xval,yval,zval:x,y,z軸的校準(zhǔn)值
void ADXL345_AUTO_Adjust(char *xval,char *yval,char *zval)
{
	short tx,ty,tz;
	u8 i;
	short offx=0,offy=0,offz=0;
	ADXL345_WR_Reg(POWER_CTL,0x00);	   	//先進(jìn)入休眠模式.
	delay_ms(100);
	ADXL345_WR_Reg(DATA_FORMAT,0X2B);	//低電平中斷輸出,13位全分辨率,輸出數(shù)據(jù)右對(duì)齊,16g量程 
	ADXL345_WR_Reg(BW_RATE,0x0A);		//數(shù)據(jù)輸出速度為100Hz
	ADXL345_WR_Reg(POWER_CTL,0x28);	   	//鏈接使能,測(cè)量模式
	ADXL345_WR_Reg(INT_ENABLE,0x00);	//不使用中斷		 
	ADXL345_WR_Reg(OFSX,0x00);
	ADXL345_WR_Reg(OFSY,0x00);
	ADXL345_WR_Reg(OFSZ,0x00);
	delay_ms(12);
	for(i=0;i< 10;i++)
	{
		ADXL345_RD_Avval(&tx,&ty,&tz);
		offx+=tx;
		offy+=ty;
		offz+=tz;
	}	 		
	offx/=10;
	offy/=10;
	offz/=10;
	*xval=-offx/4;
	*yval=-offy/4;
	*zval=-(offz-256)/4;	  
 	ADXL345_WR_Reg(OFSX,*xval);
	ADXL345_WR_Reg(OFSY,*yval);
	ADXL345_WR_Reg(OFSZ,*zval);	
} 
//讀取3個(gè)軸的數(shù)據(jù)
//x,y,z:讀取到的數(shù)據(jù)
void ADXL345_RD_XYZ(short *x,short *y,short *z)
{
	u8 buf[6];
	u8 i;
	IIC_Start();  				 
	IIC_Send_Byte(0X3A);	//發(fā)送寫器件指令	 
	IIC_Wait_Ack();	   
  IIC_Send_Byte(0x32);   		//發(fā)送寄存器地址(數(shù)據(jù)緩存的起始地址為0X32)
	IIC_Wait_Ack(); 	 		
 	IIC_Start();  	 	   		//重新啟動(dòng)
	IIC_Send_Byte(0X3B);	//發(fā)送讀器件指令
	IIC_Wait_Ack();
	for(i=0;i< 6;i++)
	{
		if(i==5)buf[i]=IIC_Read_Byte(0);//讀取一個(gè)字節(jié),不繼續(xù)再讀,發(fā)送NACK  
		else buf[i]=IIC_Read_Byte(1);	//讀取一個(gè)字節(jié),繼續(xù)讀,發(fā)送ACK 
		delay_us(15);
	  IIC_Start();  	 	   		//重新啟動(dòng)
		IIC_Send_Byte(0X3A);	//發(fā)送寫器件指令
			IIC_Wait_Ack();	
		IIC_Send_Byte(0x33+i);   		//發(fā)送寄存器地址(數(shù)據(jù)緩存的起始地址為0X32)
	  IIC_Wait_Ack(); 	 		
	  IIC_Start();  	 	   		//重新啟動(dòng)
	  IIC_Send_Byte(0X3B);	//發(fā)送讀器件指令
	  IIC_Wait_Ack();
 	}	        	   
    IIC_Stop();					//產(chǎn)生一個(gè)停止條件
	*x=(short)(((u16)buf[1]< 8)+buf[0]); 	    
	*y=(short)(((u16)buf[3]< 8)+buf[2]); 	    
	*z=(short)(((u16)buf[5]< 8)+buf[4]); 	   
}
//讀取ADXL345的數(shù)據(jù)times次,再取平均
//x,y,z:讀到的數(shù)據(jù)
//times:讀取多少次
void ADXL345_Read_Average(short *x,short *y,short *z,u8 times)
{
	u8 i;
	short tx,ty,tz;
	*x=0;
	*y=0;
	*z=0;
	if(times)//讀取次數(shù)不為0
	{
		for(i=0;i< times;i++)//連續(xù)讀取times次
		{
			ADXL345_RD_XYZ(&tx,&ty,&tz);
			*x+=tx;
			*y+=ty;
			*z+=tz;
			delay_ms(5);
		}
		*x/=times;
		*y/=times;
		*z/=times;
	}
}
//得到角度
//x,y,z:x,y,z方向的重力加速度分量(不需要單位,直接數(shù)值即可)
//dir:要獲得的角度.0,與Z軸的角度;1,與X軸的角度;2,與Y軸的角度.
//返回值:角度值.單位0.1°.
short ADXL345_Get_Angle(float x,float y,float z,u8 dir)
{
	float temp;
 	float res=0;
	switch(dir)
	{
		case 0://與自然Z軸的角度
 			temp=sqrt((x*x+y*y))/z;
 			res=atan(temp);
 			break;
		case 1://與自然X軸的角度
 			temp=x/sqrt((y*y+z*z));
 			res=atan(temp);
 			break;
 		case 2://與自然Y軸的角度
 			temp=y/sqrt((x*x+z*z));
 			res=atan(temp);
 			break;
 	}
	return res*1800/3.14;
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    1009

    瀏覽量

    40998
  • STM32
    +關(guān)注

    關(guān)注

    2290

    文章

    11018

    瀏覽量

    362930
  • IIC
    IIC
    +關(guān)注

    關(guān)注

    11

    文章

    306

    瀏覽量

    39277
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于STM32的自動(dòng)剎車燈設(shè)計(jì)實(shí)例項(xiàng)目

    設(shè)計(jì)實(shí)例圖參考:
    發(fā)表于 05-26 22:08

    帝奧微24通道像素級(jí)尾燈高側(cè)驅(qū)動(dòng)方案DIA82924介紹

    在當(dāng)今的汽車設(shè)計(jì)領(lǐng)域,汽車尾燈通常由剎車燈、倒車燈、轉(zhuǎn)向燈和霧燈等組成,是車輛與后方交通參與者溝通的重要橋梁。汽車尾燈不僅承擔(dān)著傳遞車輛行駛狀態(tài)與意圖、保障道路交通安全的核心使命,更在個(gè)性化與創(chuàng)新
    的頭像 發(fā)表于 05-26 16:09 ?197次閱讀
    帝奧微24通道像素級(jí)尾燈高側(cè)驅(qū)動(dòng)方案DIA82924介紹

    車燈密封性試驗(yàn)機(jī):保障車燈品質(zhì)的關(guān)鍵“衛(wèi)士”

    在汽車的許多部件中,雖然大燈很小,但它起著至關(guān)重要的作用。大燈密封試驗(yàn)機(jī)是確保大燈質(zhì)量的重要“檢查員”,在許多方面發(fā)揮著重要作用。(1)保證車燈的防水性能在駕駛過程中,汽車不可避免地會(huì)遇到各種惡劣
    的頭像 發(fā)表于 04-28 15:30 ?141次閱讀
    <b class='flag-5'>車燈</b>密封性試驗(yàn)機(jī):保障<b class='flag-5'>車燈</b>品質(zhì)的關(guān)鍵“衛(wèi)士”

    剎車步進(jìn)電機(jī)的特點(diǎn)

    剎車步進(jìn)電機(jī)作為一種結(jié)合了步進(jìn)電機(jī)精確控制與制動(dòng)功能的特種電機(jī),其獨(dú)特的設(shè)計(jì)和工作原理使其在需要快速啟停、精確定位的場(chǎng)景中展現(xiàn)出不可替代的優(yōu)勢(shì)。以下從技術(shù)原理、性能特點(diǎn)、應(yīng)用場(chǎng)景及發(fā)展趨勢(shì)等方面展開
    的頭像 發(fā)表于 04-25 15:34 ?263次閱讀
    <b class='flag-5'>剎車</b>步進(jìn)電機(jī)的特點(diǎn)

    華為亮相2025 ALE車燈

    2025年3月26日至3月28日,第20屆ALE車燈展在昆山花橋國(guó)際博覽中心盛大舉行,這場(chǎng)行業(yè)盛會(huì)匯聚全球頂尖主機(jī)廠、車燈企業(yè)以及上下游供應(yīng)商,各方共同探討智能車燈的前沿技術(shù)、創(chuàng)新應(yīng)用與未來發(fā)展趨勢(shì)。
    的頭像 發(fā)表于 03-27 16:30 ?477次閱讀

    鴻利智匯旗下誼善車燈邀您相約2025上海國(guó)際汽車燈具展

    3月26-28日,鴻利智匯集團(tuán)旗下子公司誼善車燈將參加2025上海國(guó)際汽車燈具展(ALE),展示多款創(chuàng)新LED車燈產(chǎn)品和汽車照明解決方案,誠(chéng)邀您蒞臨展位B-T205,共探車燈技術(shù)發(fā)展新
    的頭像 發(fā)表于 03-06 15:58 ?465次閱讀

    汽車車燈檢測(cè)與可靠性驗(yàn)證

    汽車車燈檢測(cè)的重要性汽車車燈是車輛安全系統(tǒng)中不可或缺的關(guān)鍵組件,其性能與可靠性對(duì)行車安全有著至關(guān)重要的影響。車燈不僅要為駕駛者提供良好的照明,還要在各種復(fù)雜的環(huán)境條件下正常工作,以確保車輛的行駛安全
    的頭像 發(fā)表于 02-17 17:24 ?412次閱讀
    汽車<b class='flag-5'>車燈</b>檢測(cè)與可靠性驗(yàn)證

    車燈光控制系統(tǒng)功能的設(shè)計(jì)

    通過實(shí)驗(yàn)箱STM32戰(zhàn)艦核心班上的紅燈,綠燈模擬汽車車燈
    發(fā)表于 11-28 20:20

    汽車制動(dòng)系統(tǒng)如何提升剎車性能

    汽車制動(dòng)系統(tǒng)的剎車性能是確保行車安全的關(guān)鍵因素之一。為了提升剎車性能,可以從以下幾個(gè)方面進(jìn)行改進(jìn)和優(yōu)化: 一、選用高性能制動(dòng)部件 剎車片 : 原廠剎車片通常采用少金屬配方,摩擦系數(shù)較低
    的頭像 發(fā)表于 11-28 09:47 ?1278次閱讀

    Melexis推出超低功耗霍爾效應(yīng)開關(guān)芯片MLX92235

    Melexis 推出超低功耗霍爾效應(yīng)開關(guān)芯片MLX92235,該產(chǎn)品以卓越的可靠性和高度可預(yù)測(cè)的輸出更新率公差,為汽車微功率應(yīng)用領(lǐng)域帶來重大突破,可廣泛應(yīng)用于車門把手、電子鎖存器、遮陽(yáng)板控制、信息娛樂系統(tǒng)按鈕以及剎車燈開關(guān)等多種場(chǎng)景。
    的頭像 發(fā)表于 11-22 15:41 ?653次閱讀

    基于LED驅(qū)動(dòng)器的汽車LED照明方案

    LED照明因其高亮度、低能耗、長(zhǎng)壽命及快速響應(yīng)等特點(diǎn),在汽車行業(yè)被廣泛采用。LED前大燈、日間行車燈、剎車燈和轉(zhuǎn)向燈等已成為眾多車型的標(biāo)準(zhǔn)配置。同時(shí),隨著智能駕駛技術(shù)的進(jìn)步,汽車LED照明方案也在向
    的頭像 發(fā)表于 11-15 10:28 ?881次閱讀
    基于LED驅(qū)動(dòng)器的汽車LED照明方案

    讓汽車LED照明無死角,LED驅(qū)動(dòng)的全面進(jìn)化

    以下文章來源于安森美,作者安森美LED照明因其高亮度、低能耗、長(zhǎng)壽命及快速響應(yīng)等特點(diǎn),在汽車行業(yè)被廣泛采用。LED前大燈、日間行車燈、剎車燈和轉(zhuǎn)向燈等已成為眾多車型的標(biāo)準(zhǔn)配置。同時(shí),隨著智能駕駛技術(shù)
    的頭像 發(fā)表于 10-19 08:09 ?814次閱讀
    讓汽車LED照明無死角,LED驅(qū)動(dòng)的全面進(jìn)化

    立功科技ISD智能交互車燈技術(shù)方案

    隨著智能汽車的快速發(fā)展,車燈產(chǎn)業(yè)正在經(jīng)歷從功能車燈向智能車燈轉(zhuǎn)型發(fā)展,ISD智能交互車燈憑借成熟的產(chǎn)業(yè)鏈以及不斷升級(jí)的技術(shù)方案,正逐步成為市場(chǎng)主流。本文為大家介紹立功科技ISD智能交互
    的頭像 發(fā)表于 07-18 14:26 ?2076次閱讀
    立功科技ISD智能交互<b class='flag-5'>車燈</b>技術(shù)方案

    外接高級(jí)定時(shí)器1的剎車引腳后,STM32中能不能做濾波?

    請(qǐng)問下外接高級(jí)定時(shí)器1的剎車引腳后,STM32中能不能做濾波,因?yàn)檫@個(gè)剎車功能一旦觸發(fā)就直接關(guān)閉PWM波了,要是因?yàn)樵肼暤雀蓴_意外觸發(fā),整個(gè)控制都關(guān)閉了,還有PWM是在剎車的中斷服務(wù)函
    發(fā)表于 07-02 08:04

    京東方華燦光電車載LED解決方案助力汽車智慧化、數(shù)字化

    帶來一場(chǎng)視覺賞析。 ? 占據(jù)本次展臺(tái)C位的依舊是京東方華燦光電車載LED芯片解決方案,其涵蓋前大燈、車外飾燈、內(nèi)飾燈、Mini尾燈、剎車燈以及車載背光等多個(gè)應(yīng)用場(chǎng)景。芯片封裝方案已通過AEC-Q102實(shí)驗(yàn)認(rèn)證,質(zhì)量管理體系符合IATF16949車規(guī)標(biāo)準(zhǔn),具有
    的頭像 發(fā)表于 06-29 16:29 ?1977次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品