ArduinoDemo

1.三燈   Blink
const int p1 = 1;
const int p2 = 4;
const int p3 = 12;
void setup() {
  pinMode(p1, OUTPUT);//定義輸出端口
  pinMode(p2, OUTPUT);
  pinMode(p3, OUTPUT);
}
void loop() {
  digitalWrite(p1, HIGH); //定義電流輸出
  digitalWrite(p2, LOW); 
  digitalWrite(p3, LOW); 
  delay(500);                      
   digitalWrite(p2, HIGH); 
  digitalWrite(p1, LOW); 
  digitalWrite(p3, LOW);    
  delay(500);                            
  digitalWrite(p3, HIGH); 
  digitalWrite(p1, LOW); 
  digitalWrite(p2, LOW);   
  delay(500);              
}


2.蜂鳴器  Blink
void setup() {
  pinMode(12, OUTPUT);
}
void loop(){
  unsigned char i,j;
  while(1)
  {
     for(i=0;i<80;i++)//輸出一個頻率的聲音
     {
        digitalWrite(12,HIGH);//發聲音
        delay(1000);//延時1ms
        digitalWrite(12,LOW);//不發聲音
        delay(1000);//延時ms
      }
  }
}


3.程序交互	    Digital->Button
void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.println("HI!");
}


4.燈亮 輸出到虛列埠   Digital Button
int mouth = 12;         // variable for reading the pushbutton status
double time = 0.0;
void setup() {
  // initialize the LED pin as an output:
  Serial.begin(9600);
  pinMode(12, OUTPUT);
}
void loop() {
  digitalWrite(12,HIGH);
  Serial.print("燈已經亮了");
  Serial.print(time);
  Serial.println("s");
  time=time+0.5;
  delay(500);
  digitalWrite(12,LOW);
  Serial.print("燈已經亮了");
  Serial.print(time);
  Serial.println("s");
  time=time+0.5;
  delay(500);
}


5.開關控制燈亮  頻比信號  主界面
int newdata = 0;
int sensor = A0;        
int sensorRead = 0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  sensorRead = analogRead(sensor);
  newdata = map(sensorRead,0,1024,0,255);
  Serial.println(newdata);
  analogWrite(12,newdata);
  delay(200);
}


6.開關控制燈亮燈滅    開發板 NodeMCU 1.0   樣例:ESP8266WIFI         WIFIWebServer
/*
 * 本實作將教你如何將板子設定成http的伺服器
 * 本伺服器會依照接收到的訊息去改變*腳位
 * http://server_ip/gpio/0會將腳位變成低電壓
 * http://server_ip/gpio/1會將腳位變成高電壓
 * 本伺服器的IP會在虛列埠中展示
 */
#include <ESP8266WiFi.h>
const char* ssid = "Tony";//WIFI名稱
const char* password = "19980408";//WIFI密碼
// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);//開啓板子的port80

void setup() {
  Serial.begin(115200);//開啓電腦虛列埠  速度設置爲115200
  delay(10);

  // prepare GPIO2
  pinMode(2, OUTPUT);//2號腳位設定爲輸出  D9腳位
  digitalWrite(2, 0);//將腳位設置成爲低電壓
  // Connect to WiFi network
  //截下來板子開始連接到你家基地臺
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");//印出連線到你家
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);//使用你家wifi與密碼開始連線
  
  while (WiFi.status() != WL_CONNECTED) {//這是無窮循環,還沒成功連線成功會一直跳出點點點
    delay(500);
    Serial.print(".");
  }
  Serial.println("");//連線成功後在這裏跳出連線成功
  Serial.println("WiFi connected");
  
  // Start the server
  server.begin();//伺服器啓動
  Serial.println("Server started");//列印出此伺服器被分配到的IP

  // Print the IP address
  Serial.println(WiFi.localIP());//列印出此伺服器被分配到的IP
}

void loop() {
  // Check if a client has connected
  //確定是否連線中,不是的話跳出去
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  
  // Wait until the client sends some data
  //等待傳到此伺服器的訊息,一直等一直等
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  
  // Read the first line of the request
  //收到傳過來的訊息之後,將收到的訊息存成req
  String req = client.readStringUntil('\r');
  Serial.println(req);//印出收到的訊息
  client.flush();//看不懂?高手請教
  
  // Match the request
  //開始比對收到的訊息來決定做什麼事
  int val;
  if (req.indexOf("/gpio/0") != -1)
    val = 0;
  else if (req.indexOf("/gpio/1") != -1)
    val = 1;
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }

  // Set GPIO2 according to the request
  digitalWrite(2, val);//依照收到的訊息改變燈的亮暗
  
  client.flush();

  // Prepare the response
  //準備給發訊者的迴應,內容以html的格式,代表發訊者會收到的簡單網頁
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "</html>\n";

  // Send the response to the client
  //準備好了,發送給發訊者!!
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");

  // The client will actually be disconnected 
  // when the function returns and 'client' object is detroyed
}

7.溫溼度傳感器
#include <EduIntro.h>

DHT11 dht11(8);  // creating the object sensor on pin 'D7'

int C;   // temperature C readings are integers
float F; // temperature F readings are returned in float format
int H;   // humidity readings are integers

void setup()
{
  // initialize serial communications at 9600 bps
  Serial.begin(9600);
}

void loop()
{
  dht11.update();

  C = dht11.readCelsius();     	// Reading the temperature in Celsius degrees and store in the C variable
  F = dht11.readFahrenheit();  	// Reading the temperature in Fahrenheit degrees and store in the F variable
  H = dht11.readHumidity();     // Reading the humidity index

  // Print the collected data in a row on the Serial Monitor
  Serial.print("H: ");
  Serial.print(H);
  Serial.print("\tC: ");
  Serial.print(C);
  Serial.print("\tF: ");
  Serial.println(F);

  delay(1000);                // Wait one second before get another temperature reading
}


8.LCD1602
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("Your ID:");
  lcd.setCursor(0,1);
  lcd.print("2016203515");
}

void loop() {
  // Turn off the display:
  // Turn on the display:
  lcd.display();
}


9.MFRC522讀卡
#include <SPI.h>
#include <MFRC522.h>

// #define SS_PIN 4
// #define RST_PIN 9

MFRC522 mfrc522(D4, RST_PIN);   // 創建MFRC實例
  
void setup() 
{
  pinMode(D10,OUTPUT);
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  Serial.println("系統開啓,請將你的卡片放置感應區...");
 
}
void loop() 
{
  // 尋找新卡
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //顯示卡號 b6a5eebc 182165238188
  //Serial.print("UID tag :");
  String content= "";
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     //Serial.println(mfrc522.uid.uidByte[i]);
     //Serial.print(mfrc522.uid.uidByte[i], HEX);
     content+=mfrc522.uid.uidByte[i];
  }
  Serial.println(content);
  if(content!="")
  {
    digitalWrite(D10,HIGH);
    delay(300);
    digitalWrite(D10,LOW);
  }
  delay(2000);
}

10.連WIFI
#include <ESP8266WiFi.h> //引入ESP8266Wifi庫

void setup()
{
  Serial.begin(115200);
  Serial.println();

  WiFi.begin("Tenda_261AD0", "ghq13336261416"); //就只需要這一句就可以連接到一個網絡了
                                                 //括號內參數分別爲網絡名稱(SSID)和網絡密碼

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) //等待網絡連接成功
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();

  Serial.print("Connected, IP address: ");
  Serial.println(WiFi.localIP()); //通過串口打印輸出模塊在網絡中的IP地址
}

void loop() {}








 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章