2017年3月7日 星期二

atmega, at328p+hm-10 ble board

閒閒沒事又設計了一款atmega328p+hm10 ble的板子 經過幾次改版,選擇用軟排線來外接燒錄 板子的正面照,右邊就是軟排線,需用usb-isp對mcu燒錄
板子背面照

usb-isp:

燒錄時要記得設定

 這個要取消,否則clock會是用mcu內部震盪

選擇這個,才會變成外部震盪


再來就是程式碼了,我直接使用arduino出的compiler工具,compiler之後直接去找hex code
然後就可以燒錄了,source code as follows


#include
/////////UART-9600/////////////
/////////NPN/////////////
/////////IR-LED-PIN2/////////////

const int ledPin1 = 2;      // the number of the LED pin(PNP-LOW-Active)
const int ledPin2 = 3;
const int ledPin3 = 4;
const int ledPin4 = 5;
const int ledPin5 = 6;
void setup() {
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);
  Serial.begin(9600);//
}

void loop()
{
  char incomingByte;

  if (Serial.available() > 0) {
                // read the incoming byte:
                incomingByte = Serial.read();
  switch (incomingByte)
  {
    case '0':
    digitalWrite(ledPin1, HIGH);
    break;  
    case '1':
    digitalWrite(ledPin1, LOW);
    break;

 
    case '2':
    digitalWrite(ledPin2, HIGH);
    break;  
    case '3':
    digitalWrite(ledPin2, LOW);
    break;
 
    case '4':
    digitalWrite(ledPin3, HIGH);
    break;
    case '5':
    digitalWrite(ledPin3, LOW);
    break;

    case '6':
    digitalWrite(ledPin4, HIGH);
    break;
    case '7':
    digitalWrite(ledPin4, LOW);
    break;

 
    default:
    break;
  }
}

}


再來~~~~~~~~~如何跟板子上的藍芽連線呢??
最簡單的方式就是用手機找個BLE的SPP工具
我是自己設計一個APP,來跟板子上的HM10做連線、控制
以下是APP操作介面

再來,廢話不多說,以下是DEMO 影片

https://www.youtube.com/watch?v=pBYEnuhDiyI&t=4s





沒有留言: