gpio

Calling a Method several times with several Threads

坚强是说给别人听的谎言 提交于 2020-01-11 12:30:12
问题 I want a LED to flash, while some work is beeing done on my Raspberry. I am using a Thread for the LED in my Python script. The initial code: import RPi.GPIO import time import threading pinLED = 10 pinButton = 12 GPIO.setmode(GPIO.BOARD) GPIO.setup(pinLED, GPIO.OUT) GPIO.setup(pinButton, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.output(pinLED, 0) Method for the Thread: working = False def flash(): status = 0 while working: time.sleep(0.5) if status == 0: GPIO.output(pinLED, 1) status = 1

GPIO应用-LCD

纵然是瞬间 提交于 2020-01-11 01:15:43
LCD基本特点 为什么使用LCD? 作为电子产品的主要显示器件,其特点为: 低电压微功耗 平板型结构,使用方便,工艺简单 使用寿命长 被动显示,适合信息量大、显示密度高、观看时间长的场合 显示信息量大且易于彩色化 无电磁辐射 LCD分类方法 按电光效应分类 电场效应类 电流效应类 电热写入效应类 热效应类 按显示内容分类 字段型(笔划型):主要应用于数字仪表、计算器、计数器中 点阵字符型:指显示的基本单元由一定数量点阵组成,专门用于显示数字、字母、常用图形符号及少量自定义符号或汉字 点阵图形型 按LCD器件、采光方式分类 带背光源:在弱光或者黑暗条件下使用,背光源会增加一定的功耗。 不带背光源:依靠背面的反射膜将射入的自然光从下面反射出来完成的。 点阵字符型液晶显示模块的驱动构件设计实例 点阵字符型LCD:指显示的基本单元由一定数量点阵组成,专门用于显示数字、字母、常用图形符号及少量自定义符号或汉字。把LCD控制器、点阵驱动器、字符存储器、显示体及少量的阻容元件等集成为一个液晶显示模块。 液晶显示模块在市场上已经规范化,其店特性及接口特性是统一的。因此只要设计出一种型号的接口电路,在指令上稍加修改即可使用各种规模的字符型液晶显示模块。 点阵字符型LCD模块控制器:HD44780(兼容SED1278、KS0066、NJU6408) HD44780的外部接口信号线 一般有14条

串口有关内容

亡梦爱人 提交于 2020-01-10 22:08:07
  1.串口配置过程 int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); usart1init(); while(1) { } } void usart1init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //ê1?üUSART1£?GPIOAê±?ó GPIO_InitTypeDef g; g.GPIO_Pin = GPIO_Pin_9; g.GPIO_Speed = GPIO_Speed_50MHz; g.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &g); g.GPIO_Pin = GPIO_Pin_10; g.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &g); USART_InitTypeDef u; u.USART_BaudRate=115200; u.USART_HardwareFlowControl=USART_HardwareFlowControl_None; u.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; u.USART

外部中断的配置步骤以及注意事项

浪尽此生 提交于 2020-01-10 19:19:09
void Key_Init(void) { GPIO_InitTypeDef g; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); g.GPIO_Pin=GPIO_Pin_4; g.GPIO_Mode=GPIO_Mode_IPU; GPIO_Init(GPIOE,&g); } void exti_Init(void) { Key_Init(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource4); EXTI_InitTypeDef e; e.EXTI_Line=EXTI_Line4; e.EXTI_Mode=EXTI_Mode_Interrupt; e.EXTI_Trigger=EXTI_Trigger_Falling; e.EXTI_LineCmd=ENABLE; EXTI_Init(&e); NVIC_InitTypeDef n; n.NVIC_IRQChannel=EXTI4_IRQn; n.NVIC_IRQChannelPreemptionPriority=1; n.NVIC_IRQChannelSubPriority=0; n.NVIC

GPIO应用-LED

。_饼干妹妹 提交于 2020-01-10 15:49:30
LED 由8个发光二极管LED按照组成数字0到9的方式进行物理连接,形成LED数码管,简称LED LED的选择 需要根据实际应用的需求来决定,若只需要显示数字“0”~“9”,需要7段LED即可。 若同时需要显示小数点,则需要8段LED 8段数码管由8个发光二极管LED组成。 MCU是通过I/O引脚来控制LED某段发光二极管的亮暗,从而达到显示某个数字的目的。 控制LED亮暗 确定选用的数码管是共阴极数码管或共阳极数码管。 共阴极数码管:公共端需要接地,8段数码管的信号端高电平有效,只需要在各段加上高电平信号即可使相应的段发光。 共阳极数码管:公共端接电源阳极,8段数码管的信号端低电平有效,只需要在各段加上低电平信号即可使相应的段发光。 例如共阳极8段数码管,[hgfedcba]=[0111 1111]时,h段亮,显示为小数点;[hgfedcba]=[1100 0000]时,除h、g段均亮,显示为数字“0”或字母“O”。 单个LED只能显示一个数字或字母,实际中使用多个LED显示多个数字或字母。 电气参数 能承受的最大电流;额定电压;限流电阻;电流放大电路。 对LED编程 通过一个8位数据线的数据口来控制段。 8段数码管的公共端根据共阴或共阳接到固定的低电平或高电平,现在接到MCU的一个输出引脚(片选信号)由MCU控制,这些n个数码管合在一起称为n连排数码管。

How to open and close omxplayer (Python/Raspberry Pi) while playing video?

♀尐吖头ヾ 提交于 2020-01-10 06:10:31
问题 Using a Raspberry Pi and some push buttons I want to control video playback. When someone presses a button the corresponding video plays. The buttons work great. When you press a button the video plays, but when you press a different button or the same button it opens the video without closing the video that was currently playing. I've been searching a while to fix this. I'm pretty new to Python so please keep it as simple as possible. In the code below I'm trying to accomplish it using

How to open and close omxplayer (Python/Raspberry Pi) while playing video?

给你一囗甜甜゛ 提交于 2020-01-10 06:10:07
问题 Using a Raspberry Pi and some push buttons I want to control video playback. When someone presses a button the corresponding video plays. The buttons work great. When you press a button the video plays, but when you press a different button or the same button it opens the video without closing the video that was currently playing. I've been searching a while to fix this. I'm pretty new to Python so please keep it as simple as possible. In the code below I'm trying to accomplish it using

GPIO模拟I2C实现

让人想犯罪 __ 提交于 2020-01-09 18:19:10
GPIO模拟I2C实现 代码实现 1、启动I2C传输 static void start_i2c(void) { SDA_H; CyDelayUs(IO_DELAY); SCL_H; CyDelayUs(IO_DELAY_5X); SDA_L; CyDelayUs(IO_DELAY_3X); SCL_L; CyDelayUs(IO_DELAY_2X); } 2、写数据命令 static uint8_t i2c_send_byte(uint8_t data) { uint8_t bit_cnt; uint8_t size = 0; for(bit_cnt = 0; bit_cnt < 8; bit_cnt++) { if((data<<bit_cnt) & 0x80) { SDA_H; } else { SDA_L; } CyDelayUs(IO_DELAY); SCL_H; CyDelayUs(IO_DELAY_2X); SCL_L; CyDelayUs(IO_DELAY); } //释放SDA总线,等待从设备应答 if(wait_r_ack() != 0) { size = 0; } else { size = 1; } return size; } 等待从设备响应 static uint8_t r_ack(void) //接收应答信号函数 { uint8_t ack; /

使用树莓派制作的远程开门器

北战南征 提交于 2020-01-09 16:49:18
背景: 话说自从我厂的商务部门搬到旁边的商务楼之后,工程师发现漂亮的前台MM也搬走了,某区只留下冷冷清清的鱼缸。然后,工程师们发现开门成了个问题。鉴于进门需要刷卡,所以没有带卡的工程师就不得不摁下门铃,等待其他人从座位上起身为自己开门。经历过多次不得不让别人来开门以及不得不为别人开门之后,终于有工程师不能忍受了(我就是其中一个),于是,决定自己动手解决问题。要知道,地球上没有能难住工程师的问题! 研究与选择方案: 我厂的电子门锁的开门设备是通过一个带弹簧的开关(门内,类似墙面上开灯的开关)控制的,按下开关就能打开门,按下开关的时候能够听到明显的继电器闭合的声音,因此,趁着没人的时候我把开关拆开看了一下,证实的确是通过触电控制的一个继电器。按下开关时,两个金属触电接触,继电器动作,门打开。继电器在动作后延时4秒左右恢复。这样看来,硬件层面的开门实现就非常简单了:跨接一个数字继电器,要开门时,通过电平信号控制继电器闭合并保持2秒即可。 但要实现远程控制,必须设置一台可以通过TCP或是HTTP协议接受用户命令,并能控制开门硬件(继电器)的设备。最初考虑过Arduino,作为一个开源的硬件平台,Arduino的电平输出非常易于控制和操作。而且Arduino也有RJ45或是无线的接口模块。不过在查看了Arduino的无线模块的操作方式之后

03 树莓派开发注意事项

血红的双手。 提交于 2020-01-08 09:10:59
1 编译GCC文件   gcc -o 要生成的文件名 -lwiringPi -lpthread 源文件名.c 2 假如在window操作系统里面编译了脚本文件 .sh,复制到树莓派里面不能执行,究其原因 \r 与\r\n的区别   sed -i 's/\r$//' 源文件名.sh 3 安装 wiringPi.h    cd /tmp   wget https://project-downloads.drogon.net/wiringpi-latest.deb   sudo dpkg -i wiringpi-latest.deb   检查 gpio -v   gpio readall 4 来源: https://www.cnblogs.com/Record-experience/p/12118609.html