找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

想DIY一个MACH3手轮

查看数: 4328 | 评论数: 14 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-10-29 00:56

正文摘要:

想DIY一个MACH3手轮外观大致就这样,有没有爱好者提点建议。

回复

ID:269675 发表于 2023-11-27 18:18
楼主能给一份引脚定义吗,我是菜鸟,不知道哪个是接编码器的,哪个是按钮
ID:149332 发表于 2022-12-20 12:18
wuyu3399 发表于 2021-11-5 12:50
stm8F103芯片 全代码如下:
#include "IOSTM8S103F3.h"
#define u8 uint8_t

能提供电路原理图学习学习吗?对这个很感兴趣。
ID:1004318 发表于 2022-2-7 21:16
wuyu3399 发表于 2021-11-5 12:50
stm8F103芯片 全代码如下:
#include "IOSTM8S103F3.h"
#define u8 uint8_t

我准备用esp32做个,楼主加个好友交流下
ID:1004318 发表于 2022-2-7 21:14
楼主厉害,我也准备低压一个,外观已经做好了,显示界面还在弄还没好,加好友聊聊可以吗
ID:304321 发表于 2021-11-5 12:50
stm8F103芯片 全代码如下:
#include "IOSTM8S103F3.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t

#define LED10  PA_ODR_ODR2
#define LED100 PA_ODR_ODR3
#define LEDX   PD_ODR_ODR4
#define LEDY   PD_ODR_ODR5
#define LEDZ   PD_ODR_ODR6
#define LEDA   PA_ODR_ODR1

#define KZ10  PD_ODR_ODR2
#define KZ100 PD_ODR_ODR3
#define KZX   PC_ODR_ODR4
#define KZY   PC_ODR_ODR5
#define KZZ   PC_ODR_ODR6
#define KZA   PC_ODR_ODR7

typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;

u8 XYZA=0;

void Delayms(unsigned int ms)
{
   u8 i,y;
   while(ms != 0)
   {
       for(y=0;y<100;y++)
       {
       }
       for(i=0;i<200;i++)
       {
   }
    ms--;
   }         
}



//****************io口初始化****************/
void GPIO_INIT()
{

PA_DDR = 0xFF;//
PA_CR1 = 0xFF;
PA_CR2 = 0xFF;
PA_ODR = 0xFF;

PB_DDR = 0x00;//按钮
PB_CR1 = 0x00;
PB_CR2 = 0xFF;

EXTI_CR1=0xAA;  

PC_DDR = 0xFF;//
PC_CR1 = 0xFF;
PC_CR2 = 0xFF;
PC_ODR = 0xFF;


PD_DDR = 0xFF;//
PD_CR1 = 0xFF;
PD_CR2 = 0xFF;
PD_ODR = 0xFF;
}

//*********************************主函数************************************/
main()
{   
  
  //Delayms(50);//稳定
  CLK_CKDIVR=0x00; //时钟不分频 16M
  Delayms(100);//稳定
  
  GPIO_INIT();

  KZX=0;
  LEDX=0;
  
  asm("rim");


  while (1)
  {
     //asm("sim");
  //LED10=1;
  //LED100=1;
  //Delayms(200);//稳定
     //asm("rim");   //如果进入死循环 表明输入端口上有电 仔细检查

   }
   
      
}


//PB中断服务函数
#pragma vector=0x06 //PB 中断响应
__interrupt void EXTI_PORTB_IRQHandler(void) //PB 服务函数   
{
  if((PB_IDR&0x20)==0)
  {
    Delayms(100);// 消按钮抖动
    if((PB_IDR&0x20)==0)
    {
      if(LED10==1&&LED100==1) //10倍
      {
        LED10=0;
        KZ10=0;
        KZ100=1;
      }
      else
      {  
        if(LED10==0&&LED100==1)//100倍
        {  
        LED10=0;  
        LED100=0;
        
        KZ10=1;
        KZ100=0;
        
        }     
        else
          if(LED10==0&&LED100==0)//1倍
          {
            LED10=1;
            LED100=1;
            
            KZ10=1;
            KZ100=1;
          }
      }
  }
  while((PB_IDR&0x20)==0x20);//释放按钮
  }
  
  if((PB_IDR&0x10)==0)//4选1
  {
    Delayms(100);// 消按钮抖动
    if((PB_IDR&0x10)==0)
    {
     if(XYZA==0)
     {
      LEDX=0;
      LEDY=1;
      LEDZ=1;
      LEDA=1;
      
      KZX=0;
      KZY=1;
      KZZ=1;
      KZA=1;
      
     }
     if(XYZA==1)
     {
      LEDX=1;
      LEDY=0;
      LEDZ=1;
      LEDA=1;
      
      KZX=1;
      KZY=0;
      KZZ=1;
      KZA=1;
     }
     
     if(XYZA==2)
     {
      LEDX=1;
      LEDY=1;
      LEDZ=0;
      LEDA=1;
      
      KZX=1;
      KZY=1;
      KZZ=0;
      KZA=1;
     }
     if(XYZA==3)
     {
      LEDX=1;
      LEDY=1;
      LEDZ=1;
      LEDA=0;
      
      KZX=1;
      KZY=1;
      KZZ=1;
      KZA=0;
      
      
      XYZA=0;
     }
      else XYZA++;
     
     while((PB_IDR&0x10)==0x10);//释放按钮
     }
   
    }

}
ID:304321 发表于 2021-10-30 15:42
这个外壳是不是该刷刷漆哦
ID:262 发表于 2021-10-30 05:47
干得漂亮,开始加工了吗?
ID:304321 发表于 2021-10-29 12:00
红色按钮 是急停 绿色做成对刀
ID:304321 发表于 2021-10-29 11:59
有4轴切换功能  侧面的按钮就是 切换速度和轴的
ID:277550 发表于 2021-10-29 11:09

X轴、Y轴、Z轴 三维

如果可能,还有A轴

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表