phát tin hiệu morse dùng arduino
Ở đây bạn sẽ tìm thấy một số công cụ cho các Arduino Duemilove!
Trang này có phát sáng và thiết lập lcd
Chỉ cần giữ cuộn xuống
Xin Hãy lưu ý rằng tôi sử dụng một protoshield từ adafruit
Dự án đầu tiên: AM Arduino Morse Code Transmitter
Sao chép mã dưới đây và lên nó để tải các I / O Board sau đó đặt một số loại Antenna vào PIN 8 ... PIN 8 !!!! Sau đó điều chỉnh AM 1337kHz. Tùy chọn: LED tại pin 13 để xem những gì được phát sóng, cũng là một protoshield để thêm nhiều của anten.
Lol mã mà sẽ làm mã morse nói
*********THE CODE****************************************************
//start of code //WWW.JONNYBLANCH.WEBS.COM long millisAtStart=0; long millisAtEnd=0; const long period_broadcast=8; //period of shortest broadcast (256 port changes) #define LENGTH_DIT 64 //number of period_broadcasts in one 'dit', //all other lengths are scaled from this //Broadcasts on 1337 kHz const int length_dit=LENGTH_DIT;//number of periods for dit const int pause_dit=LENGTH_DIT;//pause after dit const int length_dah=3*LENGTH_DIT;//number of persots for dah const int pause_dah=LENGTH_DIT;//pause after dah const int length_pause=7*LENGTH_DIT;//pause between words void dit(void); void dah(void); void pause(void); void broadcast(int N_cycles); void dontbroadcast(int N_cycles); // ### INC ### Increment Register (reg = reg + 1) #define ASM_INC(reg) asm volatile ("inc %0" : "=r" (reg) : "0" (reg)) void setup() { Serial.begin(9600); DDRB=0xFF; //Port B all outputs //Do one dit to determine approximate frequency millisAtStart=millis(); dit(); millisAtEnd=millis(); Serial.print(millisAtEnd-millisAtStart); Serial.print(" "); Serial.print((length_dit+pause_dit)*period_broadcast*256/(millisAtEnd-millisAtStart)/2); Serial.print("kHz "); Serial.println(); } void loop() { dit(); dit(); delay(500); dit(); dah(); dit(); dit(); delay(250); dit(); dit(); delay(250); dah(); dit(); dah(); delay(250); dit(); delay(500); dit(); dit(); delay(250); dah(); dit(); dah(); dit(); delay(250); dit(); delay(500); dah(); dit(); dah(); dit(); delay(250); dit(); dah(); dit(); delay(250); dit(); delay(250); dit(); dah(); delay(250); dah(); dah(); delay(2000); } void dit(void) { for(int i=0;ifor(int i=0;i Dự án thứ hai: LCD Cài đặt Dưới đây là làm thế nào để thiết lập màn hình LCD Giả sử bạn có một 16x2 LCD HD44780 tiêu chuẩn Nhìn trên mặt sau của màn hình LCD để tìm kiếm mà là pin 1 và đó là pin 16 !!! Mẫu mã phía dưới !!! ~ Bây giờ các kết nối bên dưới *** LCD Pin TO Arduino Digital Pin hoặc điện ** Pin 1 TO đất Pin 2 TO 5v Pin 3 TO chiết Pin 4 ĐẾN Digital Pin 7 Pin 5 ĐẾN đất Pin 6 tới kỹ thuật số Pin 8 Pins 7-10 không được sử dụng Pin 11 TO Digital Pin 9 Pin 12 TO Digital Pin 10 Pin 13 TO Digital Pin 11 Pin 14 TO Digital Pin 12 Pin 15 TO 5v tích cực Pin 16 TO negitive và cuối cùng đặt một mặt đất đến pententiometer Hình ảnh của bom mìnvoid dah(void) { for(int i=0;i for(int i=0;i void pause(void) { for(int i=0;i void broadcast(int N_cycles) { unsigned int portvalue; for (int i=0;i do { PORTB=portvalue; ASM_INC(portvalue); } while(portvalue<255 dontbroadcast="" for="" i="0;i</span" int="" n_cycles="" nbsp="" portvalue="" unsigned="" void="" x00="">255> do { ASM_INC(portvalue); //add some assembly No OPerations to keep timing the same asm volatile ("NOP"); } while(portvalue<255 nbsp="" span="">255>//end of code
***CODE*********************************************************//Code Modified By www.jonnyblanch.webs.com //Demonstrates the use a 16x2 LCD display. The LiquidCrystal //library works with all LCD displays that are compatible with the //Hitachi HD44780 driver. There are many of them out there, and you //can usually tell them by the 16-pin interface. //This sketch prints "Hello World!" to the LCD and uses the //scrollDisplayLeft() and scrollDisplayRight() methods to scroll //the text. // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins // Take note of the pin numbers LiquidCrystal lcd(7, 8, 9, 10, 11, 12); void setup() { // set up the LCD's number of rows and columns: lcd.begin(16, 2); //lcd.setCursor(0,7); // Print a message to the LCD. lcd.print("Hello, World! I am working now!!!"); delay(1000); } void loop() { // scroll 18 positions (string length) to the left // to move it offscreen left: for (int positionCounter = 0; positionCounter < 18; positionCounter++) { // scroll one position left: lcd.scrollDisplayLeft(); // wait a bit: delay(500); } // scroll 20 positions (string length + display length) to the right // to move it offscreen right: for (int positionCounter = 0; positionCounter < 20; positionCounter++) { // scroll one position right: lcd.scrollDisplayRight(); // wait a bit: delay(150); } // scroll 16 positions (display length + string length) to the left // to move it back to center: for (int positionCounter = 0; positionCounter < 16; positionCounter++) { // scroll one position left: lcd.scrollDisplayLeft(); // wait a bit: delay(150); } // delay at the end of the full loop: delay(1000); }
do mình coppy ở web nươc ngoài lên bị sai mong các bạn thông cảm cho
Comments
Post a Comment