Arduino 精要

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(扩展)
(扩展)
 
(未显示1个用户的26个中间版本)
第21行: 第21行:
  
 
[[I2C 总线精要]]
 
[[I2C 总线精要]]
 +
 +
[[I2S]] 总线精要
 +
 +
[[ADC]]
 +
 +
[[UART_体系结构]] 3.3V-5V 电平转换:Sipex SP3222E/3232E
  
 
<br><br>
 
<br><br>
第26行: 第32行:
 
== 扩展 ==
 
== 扩展 ==
  
[[Arduino Ethernet 的另一性价比选择]]
+
[[Arduino Ethernet 的另一性价比选择]] [https://www.arduino.cc/en/uploads/Main/arduino-Ethernet-Shield2-V2-sch.pdf W5500 Ethernet Shield v1.0]  
  
 
[[DHT21/AM2301 数字温湿度传感器]]
 
[[DHT21/AM2301 数字温湿度传感器]]
第43行: 第49行:
  
 
[[Encoder]] 旋转编码器
 
[[Encoder]] 旋转编码器
 +
 +
[[MC105]] 可燃气体传感器
 +
 +
[[MEMS Mic]]
 +
 +
[[Digipot]] 数字电位器
  
 
[[RS485]]
 
[[RS485]]
 +
 +
[[MBus]]
 +
 +
[[RFID]]
 +
 +
[[LoRa]]
 +
 +
[[GPS]]
 +
 +
[[FT2232]]
 +
 +
[[LEON3]]
 +
 +
[[Geiger]]
 +
 +
[[Relay]]
 +
  
 
<br><br>
 
<br><br>
第65行: 第94行:
  
 
[[ATtiny13]]
 
[[ATtiny13]]
 +
 +
[[Eagle Tips]]
 +
 +
[[Raspberry]]
 +
 +
[[Modbus]]
 +
 +
[[DLT645]]
 +
 +
[[CJT188]]
 +
 +
[[Tesla]]
 +
 +
[[Power]]
  
 
<br><br>
 
<br><br>
第205行: 第248行:
 
   
 
   
 
<br><br>
 
<br><br>
 +
 +
== Reference ==
 +
 +
* HTTP Spec: https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
 +
* https://zh.wikipedia.org/wiki/ASCII
 +
 
<br><br>
 
<br><br>
 
<br><br>
 
<br><br>

2017年10月18日 (三) 20:36的最后版本

目录

[编辑] 1 总览

Arduino I/O 之数字输入输出

Arduino I/O 之模拟输出

Arduino I/O 之数字输出扩流

Arduino memory

深入 PWM

撰写自己的 Arduino 库


阻抗和阻抗匹配

晶振电路

SPI 总线精要

I2C 总线精要

I2S 总线精要

ADC

UART_体系结构 3.3V-5V 电平转换:Sipex SP3222E/3232E



[编辑] 2 扩展

Arduino Ethernet 的另一性价比选择 W5500 Ethernet Shield v1.0

DHT21/AM2301 数字温湿度传感器

DHT11 数字温湿度传感器

夏普 GP2Y1010AU0F 灰尘传感器

PT550 光敏二极管光线传感器

SHT20 数字温湿度传感器

PT100/PT1000 工业级温度传感器

SSD1306 OLED 显示屏

Encoder 旋转编码器

MC105 可燃气体传感器

MEMS Mic

Digipot 数字电位器

RS485

MBus

RFID

LoRa

GPS

FT2232

LEON3

Geiger

Relay




[编辑] 3 应用

Arduino 监控客厅温度湿度



[编辑] 4 精华

Arduino bootloader 的烧写

面包板上的至简 Arduino

动手焊一个自己的 Arduino

Arduino 低功耗优化

ATtiny13

Eagle Tips

Raspberry

Modbus

DLT645

CJT188

Tesla

Power



[编辑] 5 糖豆

[编辑] 5.1 float2str

String(NUMBER, SCALE);
String(3.141592,5);        # "3.14159"



[编辑] 5.2 Software Serial

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()  
{
  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop()
{
  if (mySerial.available())
    mySerial.write(Serial.read());
}



[编辑] 5.3 AT CMD

SerialEvent() is called after a loop(), if there is serial data in the buffer.

String input_str = "";              // a string to hold incoming data
boolean str_over = false;           // whether the string is complete

void setup() {
  Serial.begin(9600);
  input_str.reserve(200);           // reserve 200 bytes for the inputString:
}

void loop() {
  if (str_over) {
    // Identify the CMD and processing

    input_str = "";                 // clear the string buffer
    str_over = false;
  }
}

/*
 * SerialEvent occurs whenever a new data comes in the hardware serial RX.
 * This routine is run between each time loop() runs, so using delay inside
 * loop can delay response.  Multiple bytes of data may be available.
*/
void serialEvent() {
  while (Serial.available()) {
    char in = (char)Serial.read(); 
    input_str += in;

    if (in == '\n') {                // read a line into string buffer
      str_over = true;
    } 
  }
}



[编辑] 5.4 Hex str to ull

char hexstr2bin(char c) {
 if (isdigit(c)) {  // 0 - 9
   return c - '0';
 } else if (isxdigit(c)) { // A-F, a-f
   return (c & 0xF) + 9;
 }
 return -1;
}

unsigned long long hexstr2ull(char * string)
{
  unsigned long long x =0;
  char c;
  do {
    c = hexstr2bin(*string++);
    if (c < 0)
      break;
    x = (x << 4) | c;
 } while (1);
 return x;
}



[编辑] 6 资源




[编辑] 7 Notes

0欧电阻和磁珠

谐振频率和抑制噪声

高频下过孔大小和走线长度对信号的影响

过孔和线宽与电流关系

PCB 板材参数

Altium Designer PCB 设计规则中英对照

RT5350F



[编辑] 8 Reference













个人工具
名字空间

变换
操作
导航
工具箱