Arduino 大程式
Arduio 大程式
在我的觀念裡, arduino 只能寫單一檔的小程式, 要做一個項目, 那就不太可能, 把一大堆function
寫到單一檔, 難以管理。但, 就理論言, 8051 都能寫大程式, 數檔集合,
那arduino 也應該可以。所以, 我要針對這個問題, 進行研究。
一直以來,在單晶片部份,我用8051,AVR,PIC,...,主要是用C,不同的單晶片C,都會存在一些差異。甚至8051 系列的megawin stc 也不同直接取代。十年前,也想從8位元的單晶片, 改而用 32位元的stm arm, 雖然實習機都買了, 總覺的32位元的c寫法, 變的太複雜了。光是用keil ,叫出範例, 複雜度加倍。
而後, 市面上流行 arduino , 手上也有工具, 但覺的它也是8位元機子, 很多中小學在玩, 我就直覺它是小孩子的玩意,成不了大器。近一年空檔時間多了, 我就花時間接觸 arduino mpy, 原本, 我要用mpy, 它移植性高, 但在做訊號處理時, 發現它速度慢很多, 雖然晶振160MHZ , 但速度比MPC82G516 11.0592MHZ 速慢。那如何取代我原本的8051項目。回過頭, 來用ARDUINO , 它的速度沒比8051慢。可移植性高。但我存在一個疑慮, 它能做大系統嗎。flash ram 比8051大, 但能做嗎?
今日上午, 就進行實習。結論,它是可以建自己的程式庫。這代表, 它可以干大事了。
快來製作第一個屬於自己的小專案啦
單一檔, 小專案, 基本function。
十大Arduino IDE編程工具替代方案
1. PlatformIO
2. Eclipse Arduino IDE
3. Arduino的Programino IDE
4. embedXcode
5. Ktechlab
6. Codebender
7. Visual Studio + Visual Micro
8. 宙斯IDE
9. Atmel工作室
10.
ArduinoDroid
甲、
Android
系統下執行。
ARDUINO 記憶體不足不用怕,一個函數打天下
1.用F()
Serial.println(F("This string will be stored in flash memory"));=>不佔RAM, 使用Flash
Arduino 寫自己的程式庫
自己安裝的,這個程式庫的目錄在sketchbook底下的libraries(若無請自行建立)。
File / sketchbook /
可以實習一下, 但它的說明, 不清不楚。
http://chtseng.wordpress.com/2017/05/31 /如何編寫arduino-library/
如何編寫ARDUINO LIBRARY
Program Files (x86) / Arduino / libraries
有2個範例, 都要實習, 實習完, 大概可以寫 mega glcd 的功能了.
我是用 ESP-12F 焊在自製底板。此範例有3個檔。
而 3 個檔, 全放在
FLASHLED.h
blink_ex1\blink_ex1.ino
前 2 個, 是文字檔, 我用 notepad++ 編寫,存檔。
第 3 個, 是主檔, 用Arduino IDE 編寫。
內容如下
FLASHLED.h
#ifndef FLASHLED_H
#define FLASHLED_H
#include
class FLASHLED {
public:
FLASHLED ();
~FLASHLED ();
void on();
void off();
void blink(int time);
};
#endif
flashled.cpp
#include "FLASHLED.h"
const byte LED_PIN = 13;
FLASHLED:: FLASHLED (){
pinMode(LED_PIN, OUTPUT);
}
FLASHLED::~ FLASHLED (){ }
void FLASHLED::on(){
digitalWrite(LED_PIN,HIGH);
}
void FLASHLED::off(){
digitalWrite(LED_PIN,LOW);
}
void FLASHLED::blink(int time){
on(); delay(time/2);
off(); delay(time/2);
}
blink_ex1.ino
#include
FLASHLED led;
void setup(){/*nothing to setup*/}
void loop(){
led.blink(2000);
}
ESP8266 + 1.44 TFT LCD
留言