糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 【树莓派】树莓派调光

【树莓派】树莓派调光

时间:2019-02-22 00:38:03

相关推荐

【树莓派】树莓派调光

一、树莓派非PWM引脚,模拟PWM调光

#include <stdio.h>#include <stdlib.h>#include <wiringPi.h>#include <pthread.h>unsigned int bedroom_brightness;void *bedroom_brightness_set(void *arg)//线程函数{while(1){// 设置一个周期为1ms,占空比为60%//2引脚低电平时发光digitalWrite(2, LOW);delayMicroseconds(1000-(bedroom_brightness*100));//高电平时熄灭digitalWrite(2, HIGH);delayMicroseconds(bedroom_brightness*100); // 微秒级延迟,0.4ms//}}}void main(){pthread_t id;id = pthread_create(&id, NULL, bedroom_brightness_set, NULL);//创建线程wiringPiSetup(); //初始化硬件环境pinMode(2, OUTPUT); while(1){printf("brightness;");scanf("%d", &bedroom_brightness);//设定亮度,数值(0-10)}}

二、树莓派PWM引脚调光

PS:仅支持PWM引脚,树莓派PWM引脚默认有GPIO1,其他参考引脚图

#include <wiringPi.h>void bedroom_brightness_set(int *bedroom_brightness, int *bright_last){if(*bedroom_brightness < *bright_last)//调低亮度(下一次设定的亮度小于当前亮度){for(*bright_last; *bedroom_brightness<*bright_last; --*bright_last){pwmWrite(1, *bright_last);//向pwm中写入任意自己想要的值(默认0-1024)delay(1);}printf("亮度变低\n");}else if(*bedroom_brightness > *bright_last)//调高亮度(下一次设定的亮度大于当前亮度){for(*bright_last; *bright_last<*bedroom_brightness; ++*bright_last){pwmWrite(1, *bright_last); //数值范围(0-1024)delay(1);}printf("亮度变高\n");}*bright_last = *bedroom_brightness;}

如果觉得《【树莓派】树莓派调光》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。