بسم الله الرحمن الرحيم
سنقوم اليوم بتصميم احد المشاريع الشهيرة واول مشروع سنستخدم فيه شاشة oled حيث سنستخدم حساس قراءة نبضات القلب وعرض مخطط على الشاشة oled
Pulse Sensor
Arduino uno
OLED 128×64
Pulse Sensor
حساس ذو خرج تماثلي الذي لدية القدرة على قراءة نبضات القلب حيث يتم تثبيته على احد الأصابع ويقوم باخراج اشارة تماثلية على حسب عدد دقات القلب
Arduino uno
المتحكم الذي سيقوم باستلام البيانات من الحساس وعرضها على الشاشة بصورة مخطط مثل الذي فى الأعلى
OLED 128×64
الشاشة التى سنستخدمها فى عرض المخطط الذي تم اخذه من الحساس حيث تتميز هذه الشاشة عن lcd انها يمكنها رسم عليها رسومات عالية الدقه نسبيا حيث تعمتد هذه الشاشة على بروتوكول i2c فى البرمجة الذي يستخدم منافذ sda و scl
ثانيا التوصيلات :
منفذ الطاقة يتم توصيله الى 3.3 فولت الخاصه بالأردوينو
ومنفذ السالب الى السالب
ثم توصيل منفذ sda الى a4 داخل الأردوينو
وتوصيل منفذ sck الى a5 داخل الأردوينو
ويحتو حساس القلب على 3 منافذ منفذ الطاقة ويتم توصيله الى 5 فولت ومنفذ السالب يتم توصيله بالسالب ومنفذ الإشارة يتم توصيله الى منفذ A0
ثالثا الكود :
في البداية يجب اضافة المكتبات التى سنحتاجها
سنحتاج مكتبة Adafruit_SSD1306
ومكتبة Adafruit_GFX
رابعا شرح الكود :
#include <Adafruit_SSD1306.h>
#define OLED_Address 0x3C // 0x3C device address of I2C OLED. Few other OLED has 0x3D
Adafruit_SSD1306 oled(128, 64); // create our screen object setting resolution to 128x64
int a=0;
int lasta=0;
int lastb=0;
int LastTime=0;
int ThisTime;
bool BPMTiming=false;
bool BeatComplete=false;
int BPM=0;
#define UpperThreshold 560
#define LowerThreshold 530
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, OLED_Address);
oled.clearDisplay();
oled.setTextSize(2);
}
void loop()
{
if(a>127)
{
oled.clearDisplay();
a=0;
lasta=a;
}
ThisTime=millis();
int value=analogRead(0);
oled.setTextColor(WHITE);
int b=60-(value/16);
oled.writeLine(lasta,lastb,a,b,WHITE);
lastb=b;
lasta=a;
if(value>UpperThreshold)
{
if(BeatComplete)
{
BPM=ThisTime-LastTime;
BPM=int(60/(float(BPM)/1000));
BPMTiming=false;
BeatComplete=false;
}
if(BPMTiming==false)
{
LastTime=millis();
BPMTiming=true;
}
}
if((value<LowerThreshold)&(BPMTiming))
BeatComplete=true;
oled.writeFillRect(0,50,128,16,BLACK);
oled.setCursor(0,50);
oled.print("BPM:");
oled.print(BPM);
oled.display();
a++;
}
فى البداية القيام باضافة المكتبات الخاصه بالحساسات
ثم القيام بتعريف المتغيرات الأساسية الخاصه بشاشة oled وحساس النبضات ثم تعريف الشاشة وعنوان الشاشة فى بروتوكول i2c
ثم القيام بعمل شروط بحيث كلما يتم تغير في قراءة الحساس هذا يعنى ان القلب نبض نبضه يتم تغيير الرسمة على الشاشة
لتحميل الكود اضغط هنا
تصميم : بلال حسان سعدي
لا يوجد تعليقات
أضف تعليق