怎么利用单片机 红外遥控 实现小车向左转和向右转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么利用单片机 红外遥控 实现小车向左转和向右转相关的知识,希望对你有一定的参考价值。
是用直流电机还是步进电机好一点啊
使用L298N芯片驱动直流电机控制小车车轮,直流电机转速使用PWM控制,PWM不懂可以百度。
单片机可以通过控制L298N芯片的引脚高低电平控制车轮转或者不转,左轮转 右轮不转,这就是右转弯啦。这样一个思路就可以让小车前进后退左转右转,PWM可以让小车加速或者减速。
步进机一般不拿来当车轮的,自动开关窗帘这方面更适合步进机。拿来控制车轮跑得太慢了。直流电机更灵活一点。控制PWM值一样可以让小车转到你想要的角度。
用步进电机是不是转向要精确一些呢?
追答步进机一般不拿来当车轮的,自动开关窗帘这方面更适合步进机。拿来控制车轮跑得太慢了。直流电机更灵活一点。控制PWM值一样可以让小车转到你想要的角度。
本回答被提问者和网友采纳 参考技术B 单片机接收红外信号,根据信号指令判断,控制电机动作。追问怎么让车向左转啊 电机单片机最多控制转速吧 方向怎么变呢
参考技术C 简单,不过在写毕业论文,没空帮你!追问说说思路就好了
参考技术D 你好!我这有程序用吗? 有个邮箱!追问这个可以通过程序实现啊?
追答你只是知道理论? 不做实物?
矩阵的旋转
一,给定一个矩阵,用二维数组表示,不一定是方阵(N*N),求矩阵的转置(向右),和向左转置。比如:
1 2 3
4 5 6
7 8 9
向右转置:
1 4 7
2 5 8
3 6 9
再比如:
1 2 3
4 5 6
向 左转置
3 6
2 5
1 4
二,实现思路
假设原来的矩阵是M*N,转置后变成了 N*M。设原矩阵是arr[M][N],创建一个新的矩阵 rev[N][M]
对于向右转置而言,就是线性代数里面的求AT,对于arr[M][N]里面的每个元素arr[i][j],将之赋值给 rev[j][i] 即可。
对于向左转置,对于arr[M][N]里面的每个元素arr[i][j],将之赋值给 rev[N-j-1][i] 即可。
三,完整代码
public class Test{ public static void main(String[] args) { int[][] arr1 = {{1,2,3},{4,5,6},{7,8,9}}; int[][] arr2 = {{1,2,3},{4,5,6}}; reverseRight(arr1); System.out.println("---------"); reverseRight(arr2); System.out.println("***********"); reverseLeft(arr1); System.out.println("-------------"); reverseLeft(arr2); } public static void reverseRight(int[][] arr){ int row = arr.length; int col = arr[0].length; int[][] rev = new int[col][row]; for(int i = 0; i < row; i++) { for(int j = 0; j < col; j++) rev[j][i] = arr[i][j]; } StringBuilder sb = new StringBuilder(); //打印旋转后的矩阵--有col行和 row 列 for(int i = 0; i < col; i++) { for(int j = 0; j < row; j++) { //System.out.print(rev[i][j]+" "); sb.append(rev[i][j] + " "); } sb.deleteCharAt(sb.length()-1); sb.append("\n"); // System.out.println(); } System.out.println(sb.toString()); } public static void reverseLeft(int[][] arr) { int row = arr.length; int col = arr[0].length; int[][] rev = new int[col][row]; for(int i = 0; i < row; i++) { for(int j = 0; j < col; j++) { rev[col-j-1][i] = arr[i][j]; } } //打印旋转后的矩阵--有col行和 row 列 for(int i = 0; i < col; i++) { for(int j = 0; j < row; j++) { System.out.print(rev[i][j] + " "); } System.out.println(); } } }
以上是关于怎么利用单片机 红外遥控 实现小车向左转和向右转的主要内容,如果未能解决你的问题,请参考以下文章