基于米思齐的电磁炮基础代码

news/2024/10/30 19:34:44/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主程序:
在这里插入图片描述

代码:


#include <Servo.h>volatile int 按钮;
volatile int 充电继电器;
volatile int 发射继电器;
volatile int 充电继电器状态;
volatile int 发射继电器状态;
volatile int 舵机1角度;
volatile int 舵机2角度;
Servo servo_6;
Servo servo_7;void 调试() {Serial.print(String("A4:") + String(analogRead(A4)));Serial.print(String("A5:") + String(analogRead(A5)));Serial.println(String("SW:") + String(analogRead(A3)));
}void 舵机控制() {if (analogRead(A4) <= 300) {delay(20);if (analogRead(A4) <= 300) {舵机1角度 = 舵机1角度 - 2;if (舵机1角度 <= 0) {舵机1角度 = 0;}servo_6.write(舵机1角度);delay(10);}}if (analogRead(A4) >= 700) {delay(20);if (analogRead(A4) >= 700) {舵机1角度 = 舵机1角度 + 2;if (舵机1角度 >= 140) {舵机1角度 = 140;}servo_6.write(舵机1角度);delay(10);}}if (analogRead(A5) <= 300) {delay(20);if (analogRead(A5) <= 300) {舵机2角度 = 舵机2角度 - 2;if (舵机2角度 <= 0) {舵机2角度 = 0;}servo_7.write(舵机2角度);delay(10);}}if (analogRead(A5) >= 700) {delay(20);if (analogRead(A5) >= 700) {舵机2角度 = 舵机2角度 + 2;if (舵机2角度 >= 160) {舵机2角度 = 160;}servo_7.write(舵机2角度);delay(10);}}
}boolean mixly_digitalRead(uint8_t pin) {pinMode(pin, INPUT);boolean _return =  digitalRead(pin);pinMode(pin, OUTPUT);return _return;
}void 继电器控制() {if (mixly_digitalRead(按钮) == LOW) {delay(50);if (mixly_digitalRead(按钮) == LOW) {if (充电继电器状态 == 0) {充电继电器状态 = 1;pinMode(充电继电器, OUTPUT);digitalWrite(充电继电器,HIGH);发射继电器状态 = 0;pinMode(发射继电器, OUTPUT);digitalWrite(发射继电器,LOW);Serial.println(String("充电开,") + String("发射关"));while (mixly_digitalRead(按钮) == LOW) {}} else if (充电继电器状态 == 1) {充电继电器状态 = 2;pinMode(充电继电器, OUTPUT);digitalWrite(充电继电器,LOW);发射继电器状态 = HIGH;pinMode(发射继电器, OUTPUT);digitalWrite(发射继电器,HIGH);while (mixly_digitalRead(按钮) == LOW) {}Serial.println(String("充电关,") + String("发射开"));}} else if (充电继电器状态 == 2) {充电继电器状态 = 0;pinMode(充电继电器, OUTPUT);digitalWrite(充电继电器,LOW);发射继电器状态 = HIGH;pinMode(发射继电器, OUTPUT);digitalWrite(发射继电器,LOW);while (mixly_digitalRead(按钮) == LOW) {}Serial.println(String("充电关,") + String("充电关"));}}
}void setup(){按钮 = 2;充电继电器 = 13;发射继电器 = 12;充电继电器状态 = 0;发射继电器状态 = 0;舵机1角度 = 90;舵机2角度 = 90;servo_6.attach(6);servo_7.attach(7);pinMode(按钮, INPUT);充电继电器状态 = 0;发射继电器状态 = 0;pinMode(充电继电器, OUTPUT);digitalWrite(充电继电器,LOW);pinMode(发射继电器, OUTPUT);digitalWrite(发射继电器,LOW);servo_6.write(舵机1角度);delay(0);servo_7.write(舵机2角度);delay(0);Serial.begin(9600);
}void loop(){继电器控制();舵机控制();}

http://www.ppmy.cn/news/213003.html

相关文章

冲刺电赛之电磁炮的制作-控制层

来了来了&#xff0c;有点迟&#xff0c;今天给大家讲一下电磁炮控制层的代码。首先人机交互&#xff0c;我这里和题目要求的有一点点的不一样&#xff0c;题目说是用键盘控制&#xff0c;我选择用的是蓝牙&#xff0c;型号HC-08&#xff0c;这是我用过HC系列最好用的&#xff…

2019年电赛电磁炮,冲刺国赛

先自报家门吧&#xff0c;本人大二&#xff0c;来自双一流大学&#xff0c;具体那个大学就不介绍了&#xff0c;在大一的时候就进入了专业实验室&#xff0c;本参与实验的培训&#xff0c;学习了很多关于单片机的知识&#xff0c;在今年&#xff0c;学校组织参加电赛&#xff0…

模拟电磁炮国一设计资料【2019电赛H题国一作品】

经历重重测试&#xff0c;从初赛杀进综测再到去上海复测&#xff0c;真是一路坎坷啊&#xff01;回顾电赛准备阶段&#xff0c;在实验室基地的我们熬了多少个夜&#xff0c;废寝忘食的学习…仅仅是为了能更有信心的面对电赛&#xff1b;在电赛的四天三夜中我们经历了太多&#…

2019年全国大学生电子竞赛 | 电磁炮制作教程

​ 需要此套件的联系我。 原文链接&#xff1a;https://mp.weixin.qq.com/s/T6xCl9XbWBi3ap1FagtjIA

STM32模拟电磁炮设计_STM32F103ZET6(程序+原理图+PCB+论文报告)

本设计&#xff1a; 基于STM32模拟电磁炮设计_STM32F103ZET6&#xff08;程序原理图PCB论文报告&#xff09; 原理图&#xff1a;Altium Designer 程序编译器&#xff1a;keil 5 编程语言&#xff1a;C语言 编号C0029 设计说明&#xff1a; 该系统方案主要由 STM32f103zet6单片…

【电赛合集】19电磁炮.zip、17板球.zip、15风力摆.zip、13倒立摆.zip、(1994-2021)全国大学生电子设计竞赛历年真题.zip

【电赛合集】19电磁炮.zip、17板球.zip、15风力摆.zip、13倒立摆.zip、&#xff08;1994-2021&#xff09;全国大学生电子设计竞赛历年真题.zip 电赛宝藏链接&#xff1a; 四天三夜&#xff0c;那布满着未知与紧迫感的气息让荷尔蒙无比兴奋&#xff0c;挑战着脑力与体力的极限…

2019电赛 H题-电磁炮 视觉部分

2019电赛-H题-电磁炮-视觉自瞄部分; 硬件平台: Jetson Nano, Realsense D435 实现功能&#xff1a;识别到引导标志反馈坐标及距离&#xff0c;串口输出 #include <iostream>using namespace std; #include <sstream> #include <iostream> #include <fs…