一个hin秀的小学三年级奥数题 [hin秀]

博客围绕小学三年级奥数题展开,题目是在无限大的n×n棋盘摆满棋子,按特定规则在1×3或3×1格子跳棋,判断能否只剩一个棋子。通过对不同n值(如n=1、2、3等)的走法分析,得出当n不是3的倍数时棋盘可完成任务的结论。

 

~~~~~~不知为何总会被小学的题虐哭QAQ,真的秀啊,毒害广大小朋友~~~~~~

 

一个hin秀的小学三年级奥数题    [hin秀]

 

题目:

给出一个无限大的棋盘  n×n  (n>0 , 是正整数)

上面摆满棋子

每次可以选择1×3或者3×1的格子

满足中间有子,左右两边其中一个有子

比如上图的选择合法

 

每次在选择的1×3或者3×1的格子里跳棋子

得到

 

问题在于,给出  n ,判断在不断跳棋的过程中能否做到最终界面中只剩下一个棋子

 当然你可以当做数学题做,说明当  n  取何值,可以达到目的

 

 

演示:

 

      

  

 

 

 

 

QAQ   泥寄几先  think  think     QAQ

 

 

 题解:

1.   n=1

    

 

2.   n=2

  

    走法:

 

3.   n=3

    

走法:

no answer!

 

4.  n=4

走法:

 

 5.   n=5

 

走法:

 

 

所以可以得出一些走的技巧:

 

 

 

 

 

 

 

 

 

 

 

 下面系答案啦

QVQ

 

 

 

 

 

 答案:

当 n % 3 != 0 时 ,棋盘可以完成任务

(n不是3的倍数)

 

转载于:https://www.cnblogs.com/xiaoyezi-wink/p/10802952.html

<think>我们注意到用户的问题是关于IR2104S芯片只有一个输入引脚如何实现三相扩展。实际上,IR2104S是一个半桥驱动芯片,每个芯片驱动一个半桥(即一个高侧和一个低侧MOSFET)。要实现三相逆变,需要三个IR2104S芯片,分别驱动三相桥臂。 每个IR2104S芯片有两个输入引脚:HIN(高侧输入)和LIN(低侧输入)。用户可能误以为只有一个输入引脚,实际上IR2104S的引脚定义如下: - 引脚1 (VCC): 逻辑电源 - 引脚2 (HIN): 高侧输入 - 引脚3 (LIN): 低侧输入 - 引脚4 (VSS): 地 - 引脚5 (SD): 关断(低电平有效) - 引脚6 (LO): 低侧驱动输出 - 引脚7 (VSS): 地(功率地) - 引脚8 (HO): 高侧驱动输出 - 引脚9 (VB): 高侧浮动电源 - 引脚10 (VS): 高侧浮动电源返回 因此,每个IR2104S需要两个PWM输入(HIN和LIN)来控制一个桥臂。对于三相逆变器,我们需要三个这样的芯片,总共需要6路PWM信号(每个桥臂的高侧和低侧)。 但是,在STM32中,我们可以使用高级定时器(如TIM1)的互补通道输出功能,这样每个通道(如CH1)可以输出一对互补的PWM(CH1和CH1N),这样三个通道(CH1, CH2, CH3)就可以产生6路PWM信号,分别连接到三个IR2104S芯片的HIN和LIN。 具体连接方式如下: - U相:TIM1_CH1 -> IR2104S_U的HIN, TIM1_CH1N -> IR2104S_U的LIN - V相:TIM1_CH2 -> IR2104S_V的HIN, TIM1_CH2N -> IR2104S_V的LIN - W相:TIM1_CH3 -> IR2104S_W的HIN, TIM1_CH3N -> IR2104S_W的LIN 这样,每个IR2104S芯片负责驱动一个桥臂,三个芯片共同构成三相全桥逆变器。 另外,需要注意的是,为了避免同一桥臂的高侧和低侧同时导通(直通),我们需要在PWM信号中插入死区时间。STM32的高级定时器可以自动插入死区时间。 总结:IR2104S本身有两个输入(HIN和LIN),因此每个芯片需要两个PWM输入。三相逆变需要三个IR2104S芯片,共6路PWM输入。使用STM32的高级定时器(如TIM1)的互补输出功能,可以方便地产生这6路PWM信号。 下面我们详细说明如何连接和配置。</think>### IR2104S单输入引脚实现三相扩展方案 IR2104S是一款半桥驱动器芯片,**每个芯片仅有一个输入引脚**(HIN/LIN共用SD引脚控制)。要实现三相逆变,需采用三片IR2104S芯片,通过STM32的互补PWM输出实现三相控制。以下是关键实现方法: --- #### 一、硬件连接方案 ```mermaid graph LR STM32[TIM1输出] -->|CH1| IR2104_U[HIN] STM32 -->|CH1N| IR2104_U[LIN] STM32 -->|CH2| IR2104_V[HIN] STM32 -->|CH2N| IR2104_V[LIN] STM32 -->|CH3| IR2104_W[HIN] STM32 -->|CH3N| IR2104_W[LIN] IR2104_U --> MOSFET_U[U相桥臂] IR2104_V --> MOSFET_V[V相桥臂] IR2104_W --> MOSFET_W[W相桥臂] ``` 1. **输入信号分配原理** - 每片IR2104S的**HIN和LIN独立接收信号**,但共享SD(关断)引脚 - STM32的互补PWM通道直接连接: - `TIM1_CH1` → U相HIN - `TIM1_CH1N` → U相LIN - (V/W相同理) - **SD引脚统一接高电平**(保持使能状态) 2. **死区时间实现** - 在STM32中配置硬件死区(非软件延迟): $$ t_{dead} = \frac{127 \times T_{clk}}{2} \quad (T_{clk}=13.9ns) $$ 示例:1.2μs死区 → 设置`TIM1->BDTR = 0x3A << 8`[^1] --- #### 二、软件配置关键代码 ```c // 使能TIM1互补输出(关键配置) TIM_BDTRInitTypeDef BDTR_Init; BDTR_Init.TIM_DeadTime = 0x3A; // 1.2μs死区 BDTR_Init.TIM_OSSRState = TIM_OSSRState_Enable; BDTR_Init.TIM_LockLevel = TIM_LockLevel_1; BDTR_Init.TIM_Break = TIM_Break_Disable; TIM_BDTRConfig(TIM1, &BDTR_Init); // 启动PWM输出(必须调用此函数) TIM_CtrlPWMOutputs(TIM1, ENABLE); ``` --- #### 三、避免自举电容失效的措施 1. **占空比限制** - 高侧导通时间需满足: $$ t_{on(min)} > \frac{2 \times Q_g}{I_{charge}} $$ 建议最小占空比 > 5%(100kHz时>0.5μs) 2. **自举电容刷新策略** ```c // 每100个PWM周期强制刷新一次 if (pwm_counter++ >= 100) { TIM1->CCR1 = 0; // U相低侧强制导通 TIM1->CCR2 = 0; // V相低侧强制导通 TIM1->CCR3 = 0; // W相低侧强制导通 delay_us(10); // 充电10μs pwm_counter = 0; } ``` 3. **电容选型优化** | 开关频率 | 推荐电容值 | 二极管型号 | |----------|------------|--------------| | 50kHz | 1μF/25V | UF4007 | | 100kHz | 0.47μF/50V | SS14 | --- #### 四、典型问题解决方案 1. **输入信号冲突** - 现象:HIN/LIN同时为高导致直通 - 对策: ```c // 在中断中插入保护 if (HIN & LIN) { TIM1->BDTR |= TIM_OSSRState_Enable; // 强制进入刹车状态 delay_us(1); } ``` 2. **自举电压跌落** - 对策: - 并联100nF陶瓷电容抵消ESL影响 - VB-VS间增加12V稳压管(如1N4742A) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值