丄帝De咗臂 发表于 2015-5-23 18:19:27

简易手机

本帖最后由 丄帝De咗臂 于 2015-5-23 18:21 编辑

一、名称:简易手机(此品是我等当年在温州中学所做)二、功能:该简易手机初步实现了打电话、接电话、和挂电话的功能。
三、器材:    LCD显示屏https://www.dfrobot.com.cn/goods-372.html    4*4 薄膜数字键盘https://www.dfrobot.com.cn/goods-431.html
    GPS模块https://www.dfrobot.com.cn/goods-716.html
    Arduino控制器
四、接线:
   LCD显示屏:GND、VCC、A4和A5;   GPS模块:连接Arduino,其中S1在comm端、S2在Arduino端、Uart Seclect在中间。   4*4薄膜数字键盘:接在数字口的6~13,其中D在数字口13。
五、程序代码:
#include <Keypad.h>
#include <Wire.h>
#include <String.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const byte ROWS = 4;
const byte COLS = 4;
char telNumber;
int lenth=0;
char callNumber;
char ch=0;
int i=0;
int j=0;
char hexaKeys = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins = {6,7,8,9};
byte colPins = {10,11,12,13};
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad(makeKeymap(hexaKeys),rowPins,colPins,ROWS,COLS);
//remove buff dada
void clearBuff(void)
{
for(j=0;j<81;j++)
{
    telNumber=0x00;
}
j=0;
}

void setup(){
   lcd.init();                      // initialize the lcd
   lcd.backlight();
   pinMode(2,OUTPUT);
   pinMode(3,OUTPUT);
   pinMode(4,OUTPUT);
   pinMode(5,OUTPUT);
    //GSM开机时序
    digitalWrite(5,HIGH);
    delay(1500);
    digitalWrite(5,LOW);
   //使能GSM串口
    digitalWrite(3,LOW);
    digitalWrite(4,HIGH);
       delay(2000);
    //设置波特率
    Serial.begin(9600);
    //等待call ready
    delay(5000);
    delay(5000);
    delay(5000);
    digitalWrite(2,HIGH);
    delay(1000);
   // Serial.println("AT");
lcd.clear();
lcd.print("Welcome to:");
   
}
voidloop()
{
    char key=customKeypad.getKey();
    if(key!=NO_KEY)
      {
          delay(500);
          if(key!='*'&&key!='B')
          {
         telNumber=key;
         lcd.setCursor(0,3);
         lcd.print("call:");      
         lcd.print(telNumber);
          }
          if(key=='*')//按*打电话
          {
            Serial.print("ATD");
            Serial.print(telNumber);
            Serial.println(";");
            Serial.flush();
            delay(1000);
            clearBuff();
          }
          else if(key=='#')
          {
             Serial.println("ATH\r\n");//按#挂电话
             lcd.setCursor(0,3);
             lcd.print("call:Hang up");   
            delay(100);   
            clearBuff();
          }
          else if(key=='B')
         {
            Serial.println("ATA\r\n");//按B挂电话
            lcd.setCursor(0,3);
            lcd.print("answer:ringing");
            Serial.flush();
            clearBuff();
         }
         
      }
   }


六、使用方法:
       1.将程序下载到控制器当中;   2.使用4*4 薄膜数字键盘作为拨号键盘;   3.打电话:在键盘上按下要拨的电话号码,然后按*键(LCD显示屏会显示拨出去的电话号码),电话即可拨出去;   4.接电话:按B键接听电话;   5.挂电话:按#键挂电话。
七、实物图:当时就留下一张,抱歉!








大连林海 发表于 2015-5-23 19:32:40

这个创意不错 以前的东西玩的好嗨,东西齐全就是很绝的

丄帝De咗臂 发表于 2015-5-23 19:36:59

大连林海 发表于 2015-5-23 19:32
这个创意不错 以前的东西玩的好嗨,东西齐全就是很绝的

那个GPS老贵了,现在买不起了:'(

大连林海 发表于 2015-5-23 19:38:16

丄帝De咗臂 发表于 2015-5-23 19:36
那个GPS老贵了,现在买不起了

我看了 陈老师那各种好东西 不多说实话 df的产品很全 质量很好 就是 ····

丄帝De咗臂 发表于 2015-5-23 19:39:44

大连林海 发表于 2015-5-23 19:38
我看了 陈老师那各种好东西 不多说实话 df的产品很全 质量很好 就是 ···· ...

还好还好,你也会慢慢攒全的。。。

大连林海 发表于 2015-5-23 19:41:26

丄帝De咗臂 发表于 2015-5-23 19:39
还好还好,你也会慢慢攒全的。。。

是的 咱们慢慢攒全 不再羡慕:D

丄帝De咗臂 发表于 2015-5-23 19:43:10

大连林海 发表于 2015-5-23 19:41
是的 咱们慢慢攒全 不再羡慕

对啊,大不了直接去DF公司去玩啊,哈哈

大连林海 发表于 2015-5-24 08:03:33

丄帝De咗臂 发表于 2015-5-23 19:43
对啊,大不了直接去DF公司去玩啊,哈哈

以后上班就可以买了

free 发表于 2015-5-24 10:06:36

挺好的,

dbc0301 发表于 2015-5-24 15:27:52

虽然没有多大的实用价值,但还是给你赞一个吧

丄帝De咗臂 发表于 2015-5-24 15:56:53

dbc0301 发表于 2015-5-24 15:27
虽然没有多大的实用价值,但还是给你赞一个吧

感激不尽啊:loveliness:

hnyzcj 发表于 2015-5-24 20:55:25

点赞一个,张璐多弄点功能出来。

丄帝De咗臂 发表于 2015-5-24 20:59:23

hnyzcj 发表于 2015-5-24 20:55
点赞一个,张璐多弄点功能出来。

没器材了

20060606 发表于 2020-8-22 20:17:39

好创意,要是有个外壳就更好了

JVUm7ppJGaRK 发表于 2023-7-9 18:26:39

6啊,膜拜膜拜

花生编程 发表于 2023-7-9 21:32:48

好有创意!

花生编程 发表于 2023-7-9 21:34:56

太赞了!!

Amos Young 发表于 2023-7-13 17:37:32

好创意,要是有个外壳就更好了

三春牛-创客 发表于 2023-7-16 22:09:25

创意不错

三春牛-创客 发表于 2023-7-16 22:11:58

如果能做一下外观就更好了!
页: [1]
查看完整版本: 简易手机