当前位置: 首页 > news >正文

PT2262-IR

PT2262是一款很古老的编码芯片,其兼容型号有:SC2262,AD2262,SC2260(需改变匹配电阻)等。

依据其datasheet,PT2262射频模式工作原理:

CODE BITS

A Code Bit is the basic component of the encoded waveform, and can be classified as either an AD (Address/Data) Bit or a SYNC (Synchronous) Bit.

ADDRESS/DATA (AD) BIT WAVEFORM

An AD Bit can be designated as Bit “0”, “1” or “f” if it is in low, high or floating state respectively. One bit waveform consists of 2 pulse cycles. Each pulse cycle has 16 oscillating time periods. For further details, please refer to the diagram below:

SYNCHRONOUS (SYNC.) BIT WAVEFORM

The Synchronous Bit Waveform is 4 bits long with 1/8 bit width pulse. Please refer to the diagram below:

CODE WORD

A group of Code Bits is called a Code Word. A Code Word consists of 12 AD bits followed by one Sync Bit. The 12 AD bits are determined by the corresponding states of A0 ~ A5 and A6/D5 ~ A11/D0 pins at the time of transmission. When Data Type of PT2262 is used, the address bits will decrease accordingly. For example: In the 3 Data Type where the address has nine (9) bits, the transmitting format is:

CODE FRAME

A Code Frame consists of four (4) continuous Code Words. When PT2262 detects “0” on the /TE (meaning, the /TE is active “low”), it outputs a Code Frame at DOUT. If /TE is still active at the time the Code Frame transmission ends, T2262 outputs another Code Frame. It should be noted that the Code Frame is synthesized at the time of transmission.

PT2262-IR红外模式工作原理

IR OPERATION

In the IR Type of Operation, the functions are similar to the above descriptions except for the output waveform that has a carrier frequency of 38KHz. Details are as follows(此图0编码错误):

以上需要注意的是,对于后缀为IR的芯片,其输出是没有载波的,例如,输出bit 1,仅仅是60λ高+20λ低+60λ高+20λ低,高电平期间并没有调制波。

CODE BITS

The Code Bits are further modulated with a 38KHz carrier frequency and can be “0”, “1” or “f” bit. 

CODE FRAME

Likewise, a Code Frame is made up of Code Words and the format is the same as that of RF Type of Operation,即有4个连续的CODE WORD。

OSCILLATOR

The Oscillator Frequency for the IR Type of Operation is twice the carrier frequency. Thus, the oscillator frequency should be kept at 76 KHz. A 430K ~ 560KΩ oscillator resistor between OSC 1 and OSC 2 pins is recommended. It should be noted that the carrier is a 50% duty cycle frequency.

实际发射:A0-A7地址位+D0-D3数据位+同步信号

对于红外38KHz,测得结果20λ约为320us。计算:λ=16us,clock脉宽为8us,周期16us,即频率62.5KHz(与38KHz的两倍,即76KHz有一定误差)。为了更精确还原38KHz(实际值小于此),建议取值:周期13.15us,则λ取13.15us,20λ取263us.

综上:振荡频率应该是76KHz,振荡电阻是430~560K之间。如果振荡频率是76KHz,根据datasheet说明,其接收频率应该是2.5~8倍该频率,即190~608KHz,对应的电阻小于200K但对于红外接收来说,由于没有载波,接收频率取76K。

选型:

PT2262-IR,后缀务必带IR,但目前市场上有假货,即用普通PT2262打磨后,重新激光打印成2262-IR。

解码芯片:PT2272-L4,经测试,后缀带M4与PT2262-IR无法很好匹配。

实用匹配电阻选择:

发射:约150-560K,故可用100K固定电阻+500K电位器

接收:约300-450K,可用500K电位器

红外接收选择,宜选择2脚的红外接收管,便宜好用;部分3脚的红外接收管波长不匹配,无法工作,特别是一体的(例如部分HS0038),个别由于本身会产生波形而带来干扰。

3脚(小鼻梁):接收窗口对自己,左右依次:OUT,GND,VCC。

3脚(带平面):接收窗口对自己,左右依次:OUT,VCC,GND。

2脚接收管:上拉10K电阻(缺口相连)后送入NPN三极管,该三极管集电极接5K电阻,另一脚接地(长脚,即反接)。

红外发射管:金属比较多处为阴极(负),1N4148二极管/发光二极管,长脚为正。

若不采用带后缀IR的,(射频),根据官方datasheet,其匹配电阻:

1.2M/200K 发射电阻1.2M时,发射频率约40K,接收若也为40K,则接收电阻可取510K-1M之间

1.5M/270K 发射电阻1.5M时,发射频率约30K,接收若也为30K,则接收电阻可取1M

2.2M/390K 发射电阻2.2M时,发射频率约20K,接收若也为20K,则接收电阻可取1.5M

4.7M/820K 发射电阻4.7M时,发射频率约8KHz,接收若也为800Hz,则接收电阻可取2M

利用Arduino对ESP8266编程,实现对海尔空调的遥控,代码如下:

#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
const uint16_t kIrLed = 4;  
IRsend irsend(kIrLed); 
uint16_t rawData[149] = {3228, 2772,  3246, 4252,  746, 1454,  756, 344,  760, 1438,  764, 334,  756, 342,  748, 1450,  746, 352,  746, 1454,  760, 340,  764, 1436,  756, 342,  748, 350,  746, 352,  746, 354,  744, 354,  752, 346,  760, 340,  764, 336,  764, 1434,  748, 350, 748, 352,  746, 354,  744, 354,  752, 346,  760, 340,  764, 336,  764, 334,  758, 342,  750, 350,  746, 352,  746, 354,  744, 354,  752, 348,  758, 340,  764, 336,  764, 334,  758, 1440,  748, 1452,  744, 354,  750, 348,  758, 340,  762, 336,  764, 334,  758, 340,  750, 348,  746, 352,  746, 354,  744, 354,  770, 328,  778, 322,  780, 1418,  778, 320,  750, 348,  746, 352,  746, 354,  744, 354,  750, 350,  758, 342,  762, 338,  764, 336,  760, 338,  752, 348,  746, 352,  746, 354,  744, 354,  748, 350,  756, 1442,  762, 1436, 752, 348,  746, 352,  746, 352,  744, 1454,  756}; 
void setup() {irsend.begin();
}
void loop() {irsend.sendNEC(0x11A00AB9);delay(1000);irsend.sendRaw(rawData, 149, 38);delay(1000);
}

需要注意的是,需要增加IRremoteESP8266库:

对于算能MilkV Duo,通过Arduino,模拟实现PT2262-IR功能:

#define GP16 21
#define longt 600
#define shortt 190
#define synct 11935
#define pulse(x) digitalWrite(GP16, HIGH),delayMicroseconds(x)
#define upulse(y) digitalWrite(GP16, LOW),delayMicroseconds(y)
#define bit0 pulse(shortt),upulse(longt),pulse(shortt),upulse(longt)
#define bit1 pulse(longt),upulse(shortt),pulse(longt),upulse(shortt)
#define bitf pulse(shortt),upulse(longt),pulse(longt),upulse(shortt)
#define Sync pulse(shortt),upulse(synct)
#define IRsend(x) for(int j=0;j<4;j++){\for(int i=0;i<12;i++){\switch(x[i]){\case '0':bit0;break;\case '1':bit1;break;\case 'f':bitf;break;\}\}\Sync;\                 }
//ffffffff0100
uint8_t IR0[13]={'f','f','f','f','f','f','f','f','0','1','0','0'};
void setup() {pinMode(GP16, OUTPUT);
}
void loop() {IRsend(IR0)delay(1000);、
}

以上数据通过示波器实测取得,其中4α(20λ)约为190us,12α(60λ)约为600us,sync高电平(20λ)约为190us

相关文章:

PT2262-IR

PT2262是一款很古老的编码芯片&#xff0c;其兼容型号有&#xff1a;SC2262&#xff0c;AD2262&#xff0c;SC2260(需改变匹配电阻)等。 依据其datasheet&#xff0c;PT2262射频模式工作原理: CODE BITS A Code Bit is the basic component of the encoded waveform, and ca…...

JavaScript 迭代器

在JavaScript中&#xff0c;迭代器是一种允许我们遍历集合中元素的对象。迭代器对象具有一个next()方法&#xff0c;该方法返回value和done。value是当前迭代的值&#xff0c;done属性是一个布尔值&#xff0c;表示是否到达了集合的末尾。 迭代器协议 一个迭代器对象必须具备以…...

数据结构之《队列》

在数据结构之《栈》章节中学习了线性表中除了顺序表和链表外的另一种结构——栈&#xff0c;在本篇中我们将继续学习另一种线性表的结构——队列&#xff0c;在通过本篇的学习后&#xff0c;你将会对栈的结构有充足的了解&#xff0c;在了解完结构后我们还将进行栈的实现。一起…...

【NPU 系列专栏 2 -- NVIDIA 的 H100 和 H200 是什么?】

请阅读【嵌入式及芯片开发学必备专栏】 文章目录 NVIDIA H100 和 H200 芯片NVIDIA H100 芯片简介NVIDIA H100 主要特点NVIDIA H100 应用场景NVIDIA H100 使用举例NVIDIA H200 芯片简介NVIDIA H200 主要特点NVIDIA H200 应用场景NVIDIA H200 使用举例Summary NVIDIA H100 和 H20…...

【BUG】已解决:IndexError: positional indexers are out-of-bounds

IndexError: positional indexers are out-of-bounds 目录 IndexError: positional indexers are out-of-bounds 【常见模块错误】 【解决方案】 原因分析 解决方法 示例代码 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博…...

视频汇聚,GB28181,rtsp,rtmp,sip,webrtc,视频点播等多元异构视频融合,视频通话,视频会议交互方案

现在视频汇聚&#xff0c;视频融合和视频互动&#xff0c;是视频技术的应用方向&#xff0c;目前客户一般有很多视频的业务系统&#xff0c;如已有GB28181的监控&#xff08;GB现在是国内主流&#xff0c;大量开源接入和商用方案&#xff09;&#xff0c;rtsp设备&#xff0c;音…...

SpringCloud断路器的使用与原理解析

Spring Cloud断路器是在分布式系统中实现容错的一种方式。它的原理是通过在调用链路上添加断路器,当某个服务的调用出现故障或超时时,断路器会自动迅速地切换到快速失败模式,防止故障扩散,从而保护整个系统的稳定性。 Spring Cloud断路器的使用与原理解析如下: 一、使用断…...

结构型模式-分类

一、结构型设计模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式&#xff0c;前者采用继承机制来组织接口和类&#xff0c;后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低&#xff0c;满足“合成…...

【前端】JavaScript入门及实战106-110

文章目录 106 a的索引问题107 使用DOM操作CSS108 读取元素当前的样式109 getStyle()110 其他样式操作的属性滚动条练习 106 a的索引问题 <!DOCTYPE html> <html> <head> <title></title> <meta charset"utf-8"> <script typ…...

git 版本回退-idea

1、选中项目&#xff0c;右键&#xff0c;打开 git历史提交记录 2、选中想要回退的版本&#xff0c;选择 hard&#xff08;不保留版本记录&#xff09; 3、最终选择强制提交&#xff08;必须强制&#xff09; OK&#xff0c;搞定...

[安洵杯 2019]easy_serialize_php

进入界面然后 <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g);$filter /.implode(|,$filter_arr)./i;return preg_replace($filter,,$img); } 这就是个正则if($_SESSION){unset($_SESSION); 销毁 }$_SESSION["use…...

2024年软件测试面试题大全【含答案】

一、面试基础题 简述测试流程: 1、阅读相关技术文档&#xff08;如产品PRD、UI设计、产品流程图等&#xff09;。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例&#xff08;等价类划分法、边界值分析法等&#xff09;。 5、用例评审(…...

返回倒数第 k 个节点 - 力扣(LeetCode)

面试题 02.02. 返回倒数第 k 个节点 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/int kthToLast(struct ListNode* head, int k) {struct ListNode* fastnode head…...

12 前端工程化

组件化 1. 组件化理解 就是将页面的某一部分独立出来&#xff0c;将这一部分的数据层&#xff08;M&#xff09;、视图层&#xff08;V&#xff09;和控制层&#xff08;C&#xff09;用黑盒的形式全部封装到一个组件内&#xff0c;暴露出一些开箱即用的函数和属性供外部调用。…...

跨文档消息传递:WebKit中的Web通信新纪元

跨文档消息传递&#xff1a;WebKit中的Web通信新纪元 在现代Web应用中&#xff0c;跨文档消息传递&#xff08;Cross-document messaging&#xff09;是一种允许不同源的文档进行通信的机制。这种机制对于构建复杂的Web应用&#xff0c;如嵌入式框架&#xff08;iframes&#…...

面试题 33. 二叉搜索树的后序遍历序列

二叉搜索树的后序遍历序列 题目描述示例 题解递归单调栈 题目描述 输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true&#xff0c;否则返回 false。假设输入的数组的任意两个数字都互不相同。 示例 参考以下这颗二叉搜索树&#…...

Web响应式设计———1、Grid布局

1、网格布局 Grid布局 流动网格布局是响应式设计的基础。它通过使用百分比而不是固定像素来定义网格和元素的宽度。这样&#xff0c;页面上的元素可以根据屏幕宽度自动调整大小&#xff0c;适应不同设备和分辨率。 <!DOCTYPE html> <html lang"en"> &l…...

ESP32开发进阶: 训练神经网络

一、网络设定 我们设定一个简单的前馈神经网络&#xff0c;其结构如下&#xff1a; 输入层&#xff1a;节点数&#xff1a;2&#xff0c;接收输入数据&#xff0c;每个输入样本包含2个特征&#xff0c;例如 {1.0, 0.0}, {0.0, 1.0} 等。 隐藏层&#xff1a;节点数&#xff1a;…...

全国区块链职业技能大赛国赛考题前端功能开发

任务3-1:区块链应用前端功能开发 1.请基于前端系统的开发模板,在登录组件login.js、组件管理文件components.js中添加对应的逻辑代码,实现对前端的角色选择功能,并测试功能完整性,示例页面如下: 具体要求如下: (1)有明确的提示,提示用户选择角色; (2)用户可看…...

直接插入排序算法详解

直接插入排序&#xff08;Straight Insertion Sort&#xff09;是一种简单直观的排序算法。它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常采用in-place排…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...