Arduino

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(扩展)
第47行: 第47行:
  
 
[[SSD1306 OLED 显示屏]]
 
[[SSD1306 OLED 显示屏]]
 +
 +
[[ILI9341 TFT 显示屏]]
  
 
[[Encoder]] 旋转编码器
 
[[Encoder]] 旋转编码器

2018年10月24日 (三) 17:48的版本

目录

1 总览

Arduino I/O 之数字输入输出

Arduino I/O 之模拟输出

Arduino I/O 之数字输出扩流

Arduino memory

深入 PWM

撰写自己的 Arduino 库


阻抗和阻抗匹配

晶振电路

SPI 总线精要

I2C 总线精要

I2S 总线精要

UART 体系结构



2 扩展

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

DHT21/AM2301 数字温湿度传感器

DHT11 数字温湿度传感器

夏普 GP2Y1010AU0F 灰尘传感器

PT550 光敏二极管光线传感器

SHT20 数字温湿度传感器

PT100/PT1000 工业级温度传感器

扩散硅工业级压力传感器

SSD1306 OLED 显示屏

ILI9341 TFT 显示屏

Encoder 旋转编码器

MC105 可燃气体传感器

烟雾传感器

MEMS Mic

Digipot 数字电位器

ADC


RS485

MBus

RFID

LoRa

GPS

FT2232

LEON3

Geiger 盖格计数器

Relay 继电器

Optocoupler 光耦

热感相机:Adafruit AMG8833 IR Thermal Camera https://www.adafruit.com/product/3622




3 应用

Arduino 监控客厅温度湿度



4 精华

Arduino bootloader 的烧写

面包板上的至简 Arduino

动手焊一个自己的 Arduino

Arduino 低功耗优化

ATtiny13

Eagle Tips

Raspberry

Modbus

DLT645

CJT188

Tesla

Power



5 MCU

5.1 LGT8F08/88/328 (AVR Compatible)


5.2 LGT8F684/690, LGT8P653/663 (PIC Compatible)



5.3 STM32

Stm32-cata.jpg



6 糖豆

6.1 float2str

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



6.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());
}



6.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;
    } 
  }
}



6.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;
}



7 资源




8 Notes

0欧电阻和磁珠

谐振频率和抑制噪声

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

过孔和线宽与电流关系

PCB 板材参数

Altium Designer PCB 设计规则中英对照

RT5350F



9 Reference













个人工具
名字空间

变换
操作
导航
工具箱