Linux ပေါ်မှာ Paraller port ကို digital input output တွေ အနေနဲ့ အသုံးပြု ဖို့
[Lin15a,Coo08a] C++ class နဲ့ နမူနာ ပရိုဂရမ် တွေကို အောက်က link မှာ တွေ့နိုင် ပါတယ်။
https://github.com/yan9a/parallel-port
Showing posts with label Electronics. Show all posts
Showing posts with label Electronics. Show all posts
Friday, November 23, 2018
Friday, August 10, 2018
DIY Programmable Function Generator Using Arduino Uno
Arduino Uno ကို function generator အနေ နဲ့ သုံးပြီး လိုချင် တဲ့ low frequency waveform တွေကို စိတ်ကြိုက် ထုတ်နိုင် ပါတယ်။
သူ့ရဲ့ အားသာချက် က လိုသလို ပရိုဂရမ် ရေးပြီး စိတ်ကြိုက် customize အမျိုးမျိုး ထုတ်နိုင်၊ အချိန် အလိုက် ပြောင်းနိုင် တာဖြစ်ပြီး၊ အားနည်း ချက်ကတော့ အရမ်း မြင့်တဲ့ frequency တွေကို ထုတ် မပေးနိုင် တာ ဖြစ်ပါတယ်။ Arduino ရဲ့ analog output က pwm သုံးထား တာမို့ ရလဒ် ပိုကောင်းအောင်၊ pwm frequency ကို 8 kHz လောက် ပြောင်းထား ပါတယ်။ ဒီထက် ရလဒ် ပိုကောင်း ချင်ရင် DAC နဲ့ တွဲသုံး လို့လည်း ရပါတယ်။
Thursday, July 7, 2016
Motor Driver - DRV8834
Stepper motor AM1020-V-6-65 လေးကို drive လုပ်ဖို့ အတွက် motor driver လေးတခု design လုပ်ဖြစ်ပါတယ်။ အစက Allegro ရဲ့ A4988 ကို သုံးဖို့ စဉ်းစားပေမယ့် motor အတွက် supply voltage က 8V - 35V ဖြစ်နေတော့ လက်ရှိ 6V motor နဲ့ မကိုက်တာ တကြောင်း၊ chip အရွယ်ကလည်း 5 mm x 5 mm ဖြစ်နေတော့ ကိုယ်လိုချင်တဲ့ အရွယ်ထက် နည်းနည်း ကြီးနေတာတကြောင်းကြောင့် တခြား driver ကို ထပ်ရှာဖြစ်ပါတယ်။ TI ရဲ့ DRV8835 ကျပြန်တော့ 2 mm x 3 mm အရွယ်လေးကို သဘောကျပေမယ့် DC motor တွေအတွက်အဓိက ရည်ရွယ်ထားတာမို့ stepper motor ကို အလွယ်တကူ ထိန်းဖို့ indexer မပါတာကို တွေ့ရပါတယ်။ ဒါနဲ့ 4 mm x 4 mm အရွယ်၊ motor supply voltage 2.5V - 10.8V ရပြီး၊ 1.5A per coil ရတဲ့ DRV8834 ကိုပဲ ရွေးလိုက်ပါတယ်။
Wednesday, May 18, 2016
DS1307 Real-time Clock
DS1307 Real-time clock လေးကို အသုံးပြုပုံ အကြောင်း ပြောချင်ပါတယ်။ AliExpress က module လေးဝယ်တာ ၁ ဒေါ်လာလောက်ပဲ ပေးရပါတယ်။ AT24C32 ဆိုတဲ့ 32k EEPROM လေးပါ အဆစ် ပါသေးတယ်။
Thursday, May 5, 2016
DRV2700 Piezo Driver
DRV2700 က single chip Piezo driver လေးဖြစ်ပြီး 4 mm x 4 mm x 0.9 mm အရွယ်ပဲ ရှိပါတယ်။ 100 V boost ဒါမှမဟုတ် 1 kV flyback configuration နဲ့ သုံးလို့ရပါတယ်။ Supply voltage က 3 V ကနေ 5.5 V အထိပေးနိုင်ပါတယ်။ သူ့ရဲ့ evaluation module တခုဖြစ်တဲ့ DRV2700EVM လေးနဲ့ စမ်းကြည့်ထားတာ တချို့ ဆွေးနွေးချင်ပါတယ်။
Tuesday, April 12, 2016
Using 3rd party CC2530 modules
Aliexpress ကဝယ်လိုက်တဲ့ 3rd party CC2530 module သေးသေးလေးတွေ ( ပထမတခု ၊ ဒုတိယတခု ) ကို သုံးတဲ့ အကြောင်း ပြောချင်ပါတယ်။ အရင် ဆောင်းပါး မှာ TI ရဲ့ CC2530DK ကို သုံးတဲ့ အကြောင်း ပြောဖူးပါတယ်။ အခု ဆောင်းပါး ကတော့ 3rd party module တွေကို SmartRF05EB ကိုသုံးပြီး debug နဲ့ download လုပ်တဲ့ အကြောင်း ပါ။
Thursday, March 24, 2016
Gyroscope L3G4200D
L3G4200D ဆိုတဲ့ STMicroelectronics ကထုတ်တဲ့ MEMS ultra-stable three-axis digital output gyroscope ကို သုံးကြည့်ဖြစ်ပါတယ်။ Aliexpress မှာ ရောင်းတဲ့ L3G4200D Module လေးက ၃ ဒေါ်လာ လောက်ပဲ ပေးရပါတယ်။
Thursday, January 21, 2016
Mesh Bee - JN5168
Mesh Bee က NXP ကထုတ်တဲ့ JN516x wireless chip ကိုသုံးပြီး seeed studio ထုတ်တဲ့ 2.4GHz wireless transceiver ပါ။ ကောင်းတာ တခုက သူက လုံးဝ open hardware, open source ပါ။ NXP ကပေးတဲ့ development environment နဲ့ tools တွေကလည်း free ရပါတယ်။
Labels:
Communication,
Electronics,
Embedded System,
Firmware,
IEEE 802.15.4,
Interface,
JN5168,
Mechatronics,
Mesh Bee,
Microcontroller,
Open source,
Programming,
RS232,
Serial,
Transceiver,
Wireless,
Zigbee
Thursday, November 26, 2015
DAC - Digital to Analog Converter
PWM (Pulse Width Modulation) တွေကို analog output တွေအနေနဲ့ အသုံးများပေမယ့် သူတို့က high frequency, high accuracy, hard real-time တွေအတွက်တော့ မသင့်တော်ဘူးလို့ ထင်ပါတယ်။ Analog signal အစစ်မထွက်တဲ့ အတွက် RC low pass filter ခံ သုံးပြန်ရင်လည်း ရလာမယ့် phase lag က hard real-time system တွေမှာ ပြဿနာ အကြီးကြီးပါ။ စျေးပေါ၊ သေးငယ်တဲ့
AD5641 လို DAC လေးတွေက သုံးရလွယ်ကူပြီး အဆင်ပြေတဲ့ solution ပါ။ AD5641 က 3 mm x 2 mm အရွယ်လေးပဲရှိပြီး၊ SPI interface ပါတဲ့ 14 bit DAC ပါ။ Power supply voltage က 2.7 V ကနေ 5.5 V အထိသုံးနိုင်ပါတယ်။ နမူနာ ဆက်သွယ် မှုတခုကို အောက်မှာ ပြထားပါတယ်။
ဒါကတော့ AD5641 တွေကို သုံးထားတဲ့ channel ၃ ခုပါတဲ့ digital to analog converter လေးပါ။ LPC54102 dual core ARM microcontroller ကိုသုံးပြီး AD5641 သုံးခုကို ပြိုင်တူ control လုပ်တဲ့ နမူနာ code ပါ။
ဒါကတော့ AD5641 တွေကို သုံးထားတဲ့ channel ၃ ခုပါတဲ့ digital to analog converter လေးပါ။ LPC54102 dual core ARM microcontroller ကိုသုံးပြီး AD5641 သုံးခုကို ပြိုင်တူ control လုပ်တဲ့ နမူနာ code ပါ။
Low Power DC-DC Power Supply
TPS82085 က inductor ပါသူ့ထဲမှာ တခါထဲပါပြီး efficiency မြင့်တဲ့ 3A ထိ ထုတ်ပေးနိုင်တဲ့ step down converter (MicroSiP DC/DC Power Module) တခုပါ။ အဝင်ဗို့ 2.5V ကနေ 6V အထိရပြီး၊ အထွက်ဗို့ 0.8V ကနေ အဝင်နဲ့ ညီတဲ့အထိ adjust လုပ်လို့ရပါတယ်။ အရွယ်အစားက လည်း 3.0-mm x 2.8-mm x 1.3-mm ပဲရှိပြီး 8-Pin ပါတဲ့ Package နဲ့လာပါတယ်။ Switching frequency က 2.4 MHz နဲ့ အလုပ်လုပ်ပါတယ်။

Figure. 3.6V output application. PG indicator LED can be used only when the output voltage is greater than its forward voltage.
Resistors တွေရဲ့ တန်ဖိုးနဲ့ အထွက်ဗို့ရဲ့ ဆက်သွယ်ချက် ကို အောက်ပါအတိုင်း ဖော်ပြနိုင်ပါတယ်။ $$R1 = R2 . ( VOUT/0.8 - 1 ) $$ အဲဒီမှာ R2 ရဲ့ တန်ဖိုးက 180 kΩ ထက်မကျော်သင့်ဘူးလို့ ဆိုပါတယ်။ ဒါကြောင့် R2 ကို 160 kΩ သုံးလိုက်ရင် R1 တန်ဖိုးက 560 kΩ ရပါတယ်။ အဝင် capacitor ရဲ့ တန်ဖိုးက 10 μF နဲ့ အထက်သုံးနိုင်ပြီး၊ အထွက် capacitor ရဲ့ တန်ဖိုးကတော့ 22 μF နဲ့ 150 μF ကြားမှာရှိဖို့လိုပါတယ်။
အထွက် current အများကြီး လိုပြီး၊ PCB မှာနေရာ နည်းနည်းပဲ ရှိတဲ့ အခါမျိုးမှာ တော်တော် အဆင်ပြေပါတယ်။ အထွက် current အများကြီး မလိုပဲ၊ အဝင်ဗို့ နည်းနည်းပဲ ရှိတဲ့အခါမျိုး၊ single cell နဲ့ သုံးတဲ့ အခါမျိုးဆိုရင်တော့ TPS61200 တို့၊ LTC3525 တို့နဲ့လည်း အဆင်ပြေပါတယ်။
Reference
http://www.ti.com/lit/ds/symlink/tps82085.pdf
- EN - Pin 1 က high ဆိုရင် အလုပ်လုပ်မှာ ဖြစ်ပြီး၊ low ပေးထားရင် အလုပ်မလုပ်ပါဘူး။ 400 kΩ internal pull-down resistor ပါပါတယ်။
- PG - Pin 2 က power good output ပါ။ open drain output pin ဖြစ်ပြီး 1 mA ထိ sink လုပ်ပေးနိုင်ပါတယ်။ အထွက်ဗို့ အမှန်ရဲ့ 95% ကျော် လာပြီဆိုတာနဲ့ high impedance ဖြစ်နေမှာဖြစ်ပါတယ်။ Disable ဖြစ်တဲ့အချိန်၊ thermal shutdown ဖြစ်တဲ့အချိန်၊ အထွက်ဗို့အမှန်ရဲ့ 90% အောက်ထိကျသွားတဲ့ အချိန်တွေမှာဆိုရင်တော့ low ဖြစ်သွားပါမယ်။
- VIN - Pin 3,4 က အဝင် ဗို့ဆက်ဖို့ပါ။
- GND - Pin 5,6 က ground ဆက်ဖို့ပါ။
- FB - Pin 7 က feedback reference အဝင် pin ပါ။ Feedback regulation voltage 800 mV ဖြစ်ပြီး external resisnor divider ဆက်ပြီး လိုချင်တဲ့ အထွက်ဗို့ရအောင် ဆက်နိုင်ပါတယ်။
- VOUT - Pin 8 က အထွက်ဗို့ပါ။

Figure. 3.6V output application. PG indicator LED can be used only when the output voltage is greater than its forward voltage.
Resistors တွေရဲ့ တန်ဖိုးနဲ့ အထွက်ဗို့ရဲ့ ဆက်သွယ်ချက် ကို အောက်ပါအတိုင်း ဖော်ပြနိုင်ပါတယ်။ $$R1 = R2 . ( VOUT/0.8 - 1 ) $$ အဲဒီမှာ R2 ရဲ့ တန်ဖိုးက 180 kΩ ထက်မကျော်သင့်ဘူးလို့ ဆိုပါတယ်။ ဒါကြောင့် R2 ကို 160 kΩ သုံးလိုက်ရင် R1 တန်ဖိုးက 560 kΩ ရပါတယ်။ အဝင် capacitor ရဲ့ တန်ဖိုးက 10 μF နဲ့ အထက်သုံးနိုင်ပြီး၊ အထွက် capacitor ရဲ့ တန်ဖိုးကတော့ 22 μF နဲ့ 150 μF ကြားမှာရှိဖို့လိုပါတယ်။
အထွက် current အများကြီး လိုပြီး၊ PCB မှာနေရာ နည်းနည်းပဲ ရှိတဲ့ အခါမျိုးမှာ တော်တော် အဆင်ပြေပါတယ်။ အထွက် current အများကြီး မလိုပဲ၊ အဝင်ဗို့ နည်းနည်းပဲ ရှိတဲ့အခါမျိုး၊ single cell နဲ့ သုံးတဲ့ အခါမျိုးဆိုရင်တော့ TPS61200 တို့၊ LTC3525 တို့နဲ့လည်း အဆင်ပြေပါတယ်။
Reference
http://www.ti.com/lit/ds/symlink/tps82085.pdf
Wednesday, November 25, 2015
CC2531 Zigbee USB Dongle
CC2531 USB Evaluation Module Kit ကိုသုံးပြီး wireless communication လုပ်ကြည့်တဲ့ အကြောင်းလေးပါ။ သူ့ရဲ့ website ကိုသွားပြီး CC USB Firmware Library and Examples ဆိုတဲ့ zip ဖိုင်ကို download လုပ်လိုက်ပါတယ်။ ဖိုင်ကိုဖြည်ပြီးတဲ့ အခါ Doc folder ထဲက CC USB Software Examples User’s Guide ထဲမှာ နမူနာပြထားတဲ့ USB RF Modem Example ကို စမ်းကြည့်ခဲ့ပါတယ်။
Labels:
2.4 GHz,
8051,
C,
C++,
CC2530,
Circuit,
Communication,
Electronics,
Firmware,
Free Software,
hardware,
IAR,
IEEE 802.15.4,
Microcontroller,
Robotics,
TI,
USB,
Wireless,
Zigbee
Tuesday, November 24, 2015
Wireless Communication using CC2530 Zigbee Wireless MCU
CC2530 က IEEE 802.15.4 နဲ့ Zigbee တွေအတွက် RF transceiver နဲ့ 8051 MCU ကို ပေါင်းစပ်ထားတဲ့ system-on-chip (SoC) solution တခုပါ။ သူ့ကို သုံးပြီး wireless module စမ်းလုပ်ဖို့ အတွက် CC2530EM Evaluation Modules နှစ်ခု၊ SmartRF05EB Evaluation Boards နှစ်ခု၊ နဲ့ CC2531 USB Dongle တခုပါတဲ့ CC2530DK devolopment kit ကို ဝယ်တာ USD 400 လောက်ပေးရပါတယ်။ သူတို့နဲ့ သုံးဖို့အတွက် TI ရဲ့ ဝက်ဘ်ဆိုက်မှာ အလကားပေးတဲ့ SmartRF Studio ကို စက်ထဲမှာ install လုပ်ပါတယ်။
Labels:
2.4 GHz,
8051,
C,
C++,
CC2530,
Circuit,
Communication,
Electronics,
Firmware,
Free Software,
hardware,
IAR,
IEEE 802.15.4,
Microcontroller,
Robotics,
TI,
Wireless,
Zigbee
Tuesday, November 17, 2015
Driving 28BYJ-48-5V Stepper Motor with ULN2003A Transistor Arrays on Arduino
28BYJ-48-5V Stepper Motor နဲ့ ULN2003A driver တွေက တော်တော် အသုံးများပုံရပြီး အလွယ်တကူ ဝယ်နိုင်ရုံတင်မက စျေးလည်း တော်တော်ပေါ ပါတယ်။ Stepper Library ကို မသုံးပဲ Arduino ရဲ့ Port B ကို သုံးပြီး Stepper motor ကို ထိန်းတဲ့ ရိုးရှင်းတဲ့ နမူနာလေး ဖော်ပြချင်ပါတယ်။
28BYJ-48-5V Stepper Motor က 5V နဲ့ တိုက်ရိုက်မောင်းနိုင်ပြီး၊ unipolar stepper motor အမျိုးအစားပါ။ သူ့ရဲ့ schematic ကို အောက်မှာပြထားပါတယ်။
ULN2003A Transistor Arrays ကတော့ inductive load တွေကို drive လုပ်ဖို့ ဒီဇိုင်းလုပ်ထားတာမို့ အထဲမှာ free wheeling diode ပါ ပါ ပါတယ်။ Darlington pair သုံးထားတာမို့ အဝင် ဗို့ 1.4V လောက်ကနေ 30V အထိ ကြိုက်တဲ့ ဗို့နဲ့ တိုက်ရိုက်ဆက်ပြီး ထိန်းနိုင်ပါတယ်။
Wave drive, Full step drive နဲ့ Half step drive တွေကို သုံးပြထားတဲ့ နမူနာ ပရိုဂရမ် လေးကို အောက်မှာ ပြထားပါတယ်။
28BYJ-48-5V Stepper Motor က 5V နဲ့ တိုက်ရိုက်မောင်းနိုင်ပြီး၊ unipolar stepper motor အမျိုးအစားပါ။ သူ့ရဲ့ schematic ကို အောက်မှာပြထားပါတယ်။
ULN2003A Transistor Arrays ကတော့ inductive load တွေကို drive လုပ်ဖို့ ဒီဇိုင်းလုပ်ထားတာမို့ အထဲမှာ free wheeling diode ပါ ပါ ပါတယ်။ Darlington pair သုံးထားတာမို့ အဝင် ဗို့ 1.4V လောက်ကနေ 30V အထိ ကြိုက်တဲ့ ဗို့နဲ့ တိုက်ရိုက်ဆက်ပြီး ထိန်းနိုင်ပါတယ်။
Wave drive, Full step drive နဲ့ Half step drive တွေကို သုံးပြထားတဲ့ နမူနာ ပရိုဂရမ် လေးကို အောက်မှာ ပြထားပါတယ်။
//Driving 28BYJ-48-5V Stepper Motor using ULN2003A Transistor Arrays
//Author: Yan Naing Aye
//Website: http://www.cool-emerald.com/
#include "StepperPortB.h"
//----------------------------------------------------------
void setup() {
StepperInit();//setup pins
//StepperMode(WAVE);
//StepperMode(FULL);
StepperMode(HALF);
//Serial.begin(9600);
}
void loop() {
Step(4096,2500); //turn 4096 steps forward with 2500 us period for each step
Step(-4096,2500);//turn 4096 steps backward with 2500 us period for each step
//Serial.println(CS);
}
//File: StepperPortB.h
//Author: Yan Naing Aye
//Website: http://www.cool-emerald.com/
//Driving 28BYJ-48 – 5V Stepper Motor using ULN2003A Transistor Arrays
//----------------------------------------------------------
#ifndef StepperPortB_h
#define StepperPortB_h
#include "Arduino.h"
byte* S; //Stepping sequence
//Wave drive
//Step 0 | 1 | 2 | 3 | 0 |...
//Blue = A : 1 | 0 | 0 | 0 | 1 | ...
//Pink = B : 0 | 1 | 0 | 0 | 0 | ...
//Yellow = C : 0 | 0 | 1 | 0 | 0 | ...
//Orange = D : 0 | 0 | 0 | 1 | 0 | ...
byte Wave[4] = {0x01,0x02,0x04,0x08};
//Full Step drive
//Step 0 | 1 | 2 | 3 | 0 |...
//Blue = A : 1 | 1 | 0 | 0 | 1 | ...
//Pink = B : 0 | 1 | 1 | 0 | 0 | ...
//Yellow = C : 0 | 0 | 1 | 1 | 0 | ...
//Orange = D : 1 | 0 | 0 | 1 | 1 | ...
byte FullStep[4] = {0x09,0x03,0x06,0x0C};
//Half Step drive
//Step 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 |...
//Blue = A : 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |...
//Pink = B : 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |...
//Yellow = C : 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |...
//Orange = D : 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |...
byte HalfStep[8] = {0x09,0x01,0x03,0x02,0x06,0x04,0x0C,0x08};
int CS=0;//Current step
int N;
//----------------------------------------------------------
//Mode definition
#define HALF 0
#define FULL 1
#define WAVE 2
//Define the mode to drive the stepper motor
void StepperMode(int Mode) {
if(Mode==WAVE) {S=Wave; N=4;}
else if(Mode==FULL) {S=FullStep; N=4;}
else {S=HalfStep; N=8;}
}
//----------------------------------------------------------
//Turn stepper motor n steps
//with t microseconds period for each step
//positive n for forward dir and negative n for backward dir
void Step(int n,int t) {
int CD=1;
if(n<0) {n*=-1; CD=-1;}
for(int i=0;i<n;i++) {
CS=(CS+(N+CD))%N;
PORTB=S[CS];
delayMicroseconds(t);
}
}
//----------------------------------------------------------
//Initialize
void StepperInit() {
//Setup port B (digital pin 8 to 13)
//The two high bits (6 & 7) map to the crystal pins and are not usable
//only 4 pins - 8 to 11 are used in this program
//where Blue - pin 8 (LSB), Pink -pin 9, Yellow -pin 10, Orange -pin 11
DDRB=0xff;
PORTB = 0x00;
}
//----------------------------------------------------------
#endif
Friday, September 25, 2015
Adafruit CC3000 WiFi for Arduino
WiFi သုံးပြီး microcontroller နဲ့ ဆက်သွယ်တဲ့ ဟာကို Arduino Uno နဲ့ Adafruit CC3000 WiFi Shield ကိုသုံးပြီး စမ်းကြည့်ထားတာပါ။ သူက Arduino ရဲ့ standard WiFi shield မဟုတ်တဲ့ အတွက် WiFi.h library ကို သုံးလို့မရပါဘူး။ ဒါ့ကြောင့် Adafruit CC3000 library ကို ဒေါင်းလုပ်လုပ်၊ un-zip လုပ်ပြီး C:\Program Files (x86)\Arduino\libraries folder ထဲမှာ ထည့်ဖို့လိုပါတယ်။
Saturday, September 19, 2015
Controlling Your Hardware from the Web Using Arduino
Arduino Ethernet shield 2 ကိုသုံးပြီး အင်တာနက်ကနေ သင့်ရဲ့ hardware တွေကို လှမ်းပြီး ထိန်းတဲ့အကြောင်း ဆွေးနွေးချင်ပါတယ်။ Arduino Ethernet 2 Library ကိုသုံးပြီး server အနေနဲ့ နမူနာတခု၊ client အနေနဲ့ တမျိုး စမ်းကြည့်ပါမယ်။ နောက်ဆုံး version Arduino IDE ကို သုံးဖို့လိုပါတယ်။ ဒီနမူနာမှာတော့ Arduino IDE 1.7.6 ကိုသုံးထားပါတယ်။ Arduino Uno ကို Ethernet shield 2 တပ်ထားတဲ့ပုံကို အောက်မှာ ပြထားပါတယ်။
Labels:
Arduino,
Circuit,
Code,
Electronics,
Embedded System,
Ethernet,
Firmware,
Interface,
Internet,
MCU,
Mechatronics,
Microcontroller,
Robotics,
Sensor,
Signal Processing,
Web
Wednesday, September 16, 2015
Testing Dual-Core Microcontroller - LPC54102
LPC54102J512 MCU မှာ Cortex M4 Master တစ်ခုနဲ့ Cortex M0+ Slave ဆိုပြီး core နှစ်ခုပါပါတယ်။ LPCXpresso IDE v7.9.0 ကိုသုံးပြီး multicore systems တစ်ခုကို ဖန်တီးတာ၊ debug လုပ်တာတွေကို နမူနာ တစ်ခုရေးပြီး စမ်းကြည့်တဲ့ အတွေ့အကြုံကို ပြောချင်ပါတယ်။ LPCOpen ကို ဒေါင်းလုပ်လုပ်ထားပြီး Quickstart -> Import project(s) ကို နှိပ်ပြီး import လုပ် ထားဖို့လိုပါတယ်။
Thursday, September 10, 2015
Accelerometer LIS3DSH
LIS3DSH က STMicroelectronics ထုတ်တဲ့ 3-axis MEMS accelerometer တခု ဖြစ်ပါတယ်။ Full scale ကို ±2g ကနေ ±16g ထိ အမျိုးမျိုးရွေးလို့ ရပါတယ်။ အရွယ်အစားက လည်း 3mm x 3mm ပဲမို့ သေးသေးလေးပါ။ Digital output ကို SPI ဒါမှမဟုတ် I2C ကြိုက်တာသုံးလို့ရပါတယ်။ Supply voltage က 1.71 V ကနေ 3.6 V ထိပေးလို့ ရပါတယ်။ STEVAL-MKI134V1 adapter board လေး တခုဝယ်ပြီး စမ်းကြည့်ထားတဲ့ အတွေ့အကြုံ လေးအကြောင်း ပြောချင်ပါတယ်။
Labels:
8051,
Accelerometer,
Arduino,
ARM,
AT89C51CC03,
Circuit,
Code,
Electronics,
Embedded System,
Firmware,
I2C,
Interface,
LPC54102,
MCU,
Mechatronics,
Microcontroller,
Robotics,
Sensor,
Signal Processing,
SPI
Tuesday, August 4, 2015
Bluetooth Module to be Used with Microcontroller
HC-05 Master/Slave Bluetooth Module လေးက စျေးသက်သာပြီး (~SGD 16) သံုးရလွယ်တဲ့ Bluetooth module တစ်ခုဖြစ်ပြီး UART interface သံုးပါတယ်။ အဲဒီ HC-05 နဲ့ Arduino Uno microcontroller ကိုသံုးပြီး LED မီးလံုးကို ဖုန်းနဲ့ Bluetooth communication သံုးပြီး အဖွင့်၊ အပိတ် ထိန်း တဲ့ နမူနာတစ်ခု ကို ဆွေးနွေးပါမယ်။ တကယ်တော့ UART interface ပါတဲ့ ဘယ် မိုက်ကရိုကွန်ထရိုလာ မဆို သံုးလို့ရပါတယ်။
Wednesday, September 3, 2014
Thursday, March 6, 2014
Reading Rotary Encoder Using Microcontroller
Rotary encoder တွေကို ထောင့်ဘယ်လောက်လှည့်သွားသလဲ (angular position) နဲ့ ဘယ်လောက်ဘီးလည်ပြီး ရွေ့သွားလဲ (motion sensing) ဆိုတာတွေကို တိုင်းတာဖို့ သုံးလေ့ရှိပါတယ်။
Optical rotary encoder တွေမှာ အပေါက်လေးတွေ ပုံဖော်ပြီး ဖောက်ထားတဲ့ အချပ်ကလေး ပါလေ့ရှိပြီး၊ အလင်းထုတ်ပေးတဲ့ LED နဲ့ အလင်းကို အာရုံခံနိုင်တဲ့ photo detector ကြားမှာ အဲဒီ အဝိုင်းလေး လည်တဲ့အခါ၊ အလင်းကျသွား၊ အလင်းကွယ်သွားတဲ့ ပေါ်မူတည်ပြီး ဗို့အား အနိမ့်အမြင့် digital waveform တွေထွက်လာပါတယ်။
Encoder တွေမှာ glitch တွေ မဖြစ်အောင် ပုံမှန် binary code အစား Gray code ကို သုံးလေ့ပါတယ်။ Gray code မှာ ကပ်ရပ်နံပါတ် တစ်ခုနဲ့ တစ်ခု အကြား ပြောင်းလဲတဲ့ bit အရေအတွက်က တစ်ခု ထက် မပိုတဲ့အတွက် glitch တွေ ဖြစ်မယ့် ပြဿနာကနေ ကာကွယ်ပေးပါတယ်။ Gray code 0 ကနေ 3 အထိကို အောက်က ဇယားမှာ ပြထားပါတယ်။
Encoder တွေမှာ glitch တွေ မဖြစ်အောင် ပုံမှန် binary code အစား Gray code ကို သုံးလေ့ပါတယ်။ Gray code မှာ ကပ်ရပ်နံပါတ် တစ်ခုနဲ့ တစ်ခု အကြား ပြောင်းလဲတဲ့ bit အရေအတွက်က တစ်ခု ထက် မပိုတဲ့အတွက် glitch တွေ ဖြစ်မယ့် ပြဿနာကနေ ကာကွယ်ပေးပါတယ်။ Gray code 0 ကနေ 3 အထိကို အောက်က ဇယားမှာ ပြထားပါတယ်။
Subscribe to:
Posts (Atom)













