1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
1、全新的交互和界面
2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计
3、更严谨的设计约束,更规范的流程
4、面向企业、更专业的用户
标准版 Atmega 四路传感器多用途开发板
简介:基于Atmega48(目前最便宜的Atmega芯片)的传感器开发板,支持Arduino IDE
开源协议: Public Domain
项目的说明
这一个设计,主要是使用了有限的成本的情况下,便于编程和快速应用,我特意的采用了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);
}
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 10p | C2,C3 | C0805 | 2 |
2 | 0.1u | C4 | C0805 | 1 |
3 | 10uf | C6 | CASE-A_3216 | 1 |
4 | 0.1uf | C7 | C0805 | 1 |
5 | 1N5817W | D2 | SOD-123_L2.8-W1.8-LS3.7-RD | 1 |
6 | HDR-F-2.54_1x4 | H3 | HDR-F-2.54_1X4 | 1 |
7 | HT3.96-4P | IN1-1,IN1-2,OUT1-1,OUT1-2 | CONN-TH_4P-P3.96_HT396R-3.96-4P | 4 |
8 | HDR-M-2.54_1x2 | J1 | HDR-M-2.54_1X2 | 1 |
9 | HDR-M-2.54_1x4 | J1-SPI | HDR-M-2.54_1X4 | 1 |
10 | 3x6x2.5Red head high temperature | KEY2 | SW-SMD_L6.0-W3.0-P8.00 | 1 |
11 | 10uH | L1 | IND-SMD_L5.0-W5.0 | 1 |
12 | GREEN | LED1 | Z-5MM-LED | 1 |
13 | YELLOW | LED2 | Z-5MM-LED | 1 |
14 | RED | LED3 | Z-5MM-LED | 1 |
15 | 10k | R1,R3,R4,R6 | R0402 | 4 |
16 | 1k | R2,R5,R16 | R0805 | 3 |
17 | 330 | R7,R8 | R0805 | 2 |
18 | ATMEGA48PA-AU | U1 | TQFP-32_L7.0-W7.0-P0.80-LS9.0-BL | 1 |
19 | QX2303L33E | U2 | SOT-89_L4.5-W2.5-P1.50-LS4.2-BR | 1 |
20 | AMS1117-5V | U4 | SOT-223-3_L6.5-W3.4-P2.30-LS7.0-BR | 1 |
21 | 8MHz | X1 | HC-49US_L11.5-W4.5-P4.88 | 1 |
展开
加载中...
是否需要添加此工程到专辑?