站内搜索
发作品签到
标准版

Atmega 四路传感器多用途开发板

工程标签

3.9k
0
0
0

简介

基于Atmega48(目前最便宜的Atmega芯片)的传感器开发板,支持Arduino IDE

简介:基于Atmega48(目前最便宜的Atmega芯片)的传感器开发板,支持Arduino IDE

开源协议

Public Domain

创建时间:2022-01-12 13:07:22更新时间:2022-04-11 13:35:40

描述

项目的说明

 

这一个设计,主要是使用了有限的成本的情况下,便于编程和快速应用,我特意的采用了Atmega48,这个目前算是廉价并且容易获取的,最低只要6元(不含邮费),推力大(单个引脚10ma)并且还是5V。

 

关键,用的Arduino IDE,不过当下没有Bootloader所以你需要一个USBASP或者编程器,我使用的TH866A,这个还挺好用的。

 

在设计原因上,我是想说能建议的配置传感器和执行器,什么是执行器,比如继电器、单路MOS管等等,因此PCB上配了很大的接口,这种接口能拔插并且连接牢固,我很喜欢。

 

非常推荐使用Atmega8。

 

测试的方法

 

首先就是测试代码,这一段代码主要是验证三个灯是否能使用。

 

 

 

void setup() {
  // put your setup code here, to run once:
  pinMode(PD7,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(2,OUTPUT);
  digitalWrite(PD7,HIGH);
  digitalWrite(PB2,HIGH);
  digitalWrite(2,HIGH);
}

void loop() {
  // put your main code here, to run repeatedly:
delay(50);
digitalWrite(PD7,HIGH);
delay(50);
digitalWrite(10,LOW);
delay(50);
digitalWrite(2,LOW);

delay(50);
digitalWrite(PD7,LOW);
delay(50);
digitalWrite(10,HIGH);
delay(50);
digitalWrite(2,HIGH);
}

 

 

在设计考虑上,三个灯分别作用为

 

黄色等待:正在传感中

绿色激活:传感到设置的值或目标,已经触发动作

红色错误:一些问题,比如说传感器数值有毛病

 

两个按钮的作用很明确,就是为了提供很好的手感并且容易安装,所以用的是五个jio的机械键盘轴。

 

这一款在电路元件上面尽量缩减了预算,所以没有设置常见的串口转USB,但是我配置有一套锂电池升压电路,可以稳定输出5V到Atmega48,但输入的电压不能超过5V,不然输入多少就输出多少。

 

因为没有Bootloader可用,所以也没必要引出DTR一类引脚,因此板载上省略。

 

需要注意的是连接的电池必须有保护板,没有设计充电电路,可自选常见的充电模块并联到电池输入端。

 

注:需要安装MiniCore库,在原理图上都已经标注好

 

验证代码

 

配合模块TM1367,接OUT1-2,使用到的库:SevenSegmentTM1637.h

 

附加开发板管理器网址:https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

 

 

// include the SevenSegmentTM1637 library
#include "SevenSegmentTM1637.h"

/* initialize global TM1637 Display object
*  The constructor takes two arguments, the number of the clock pin and the digital output pin:
* SevenSegmentTM1637(byte pinCLK, byte pinDIO);
*/
//#include"LowPower.h"
const byte PIN_CLK = 5;   // define CLK pin (any digital pin)
const byte PIN_DIO = 6;   // define DIO pin (any digital pin)
#define LEDWAIT PD2
#define LEDACT 7
#define LEDERR 10
#define MODE 4
#define SEL 3
SevenSegmentTM1637    display(PIN_CLK, PIN_DIO);

// run setup code
void setup() {
  Serial.begin(9600);         // initializes the Serial connection @ 9600 baud
  display.begin();            // initializes the display
  display.setBacklight(100);  // set the brightness to 100 %
  pinMode(3,INPUT);
  pinMode(4,INPUT);
  pinMode(LEDWAIT,OUTPUT);
  pinMode(LEDACT,OUTPUT);
  pinMode(LEDERR,OUTPUT);
  pinMode(LEDWAIT,HIGH);
  pinMode(LEDACT,LOW);
  pinMode(LEDERR,LOW);
  display.print((int)((analogRead(A7)/1024.0)*100.0)); 
  delay(1000); 
  display.print("3600");  
};
int overtime = 15000;//sleep
void down()
{
 display.clear(); 
 while(1);
//LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
// run loop (forever)
long int syst=0;
long int lastsyst=0;
void loop() {
  syst=millis();
  if(syst-lastsyst>overtime)
  {
    down();
  }              // display LOOP on the display
  digitalWrite(LEDWAIT,HIGH);
  if(digitalRead(MODE) == HIGH)
  {
    lastsyst = millis();
    Run();
  }
  if(digitalRead(SEL) == HIGH)
  {
    lastsyst = millis();
    timeswitch();
  }
  
}
int mode = 0;
int times = 3600;
void timeswitch()
{
  mode += 1;
  switch(mode){
    case 0:
    times = 3600;
    break;
    case 1:
    times = 1800;
    break;
    case 2:
    times = 600;
    break;
    case 3:
    times = 300; 
    break;
    default:
    mode = 0;
    times = 3600;
    break;
  }
  display.clear(); 
  display.print(times); 
  delay(200);
}
void Run()
{
  digitalWrite(LEDWAIT,LOW);
  digitalWrite(LEDACT,HIGH);
  for (int i=times; i > 0; i--) {     // loop from 0 to 100
    display.print(i);                   // display loop counter
    delay(1000);                         // wait 100 ms
  };
  display.clear();                      // clear the display
  display.print("OVER");                // print SUCC for success
  display.blink();                      // blink SUCC
  delay(10000);                       // wait 1000 ms
  digitalWrite(LEDWAIT,HIGH);
}

 

 

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
ReversTimer.ino.with_bootloader.hex
14
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航