Min gamla telefon + arduino = phonoduino (5 / 7 steg)

Steg 5: Programmera arduino



Bilden av min komplett phonoduino (telefon + arduino) setup ges ovan. DTMF-bidrag ges inte till arduino nu. Vi kommer att se senare i detta projekt. Låt oss nu skriva lite kod för att ge livet på phonoduino. Kod för automatisk kräver ett visst antal fästas.

int key0 = 16;
int key1 = 6;
int key2 = 12;
int key3 = 9;
int key4 = 5;
int kry5 = 15;
int key6 = 10;
int key7 = 14;
int key8 = 13;
int key9 = 18;
int keyStar = 17;
int keyOk = 11;
int keyClear = 3;
int keyDown = 4;
int keyUp = 8;
int keyOff = 2;
int keyHash = 19;

int pressTime = 100;
int pressDelay = 300;
int holdTime = 1000;

int value[16] = {16,6,12,9,5,15,10,14,13,18,17,11,3,4,8,2};

void setup() {
// initialize the digital pin as an output.
for(int i=2; i<20; i++)
pinMode(i, OUTPUT);

holdClear();

unlockPhone();
delay(2000);

holdClear();
delay(1000);
// call 0123456789
pressDigit(0);
pressDigit(1);
pressDigit(2);
pressDigit(3);
pressDigit(4);
pressDigit(5);
pressDigit(6);
pressDigit(7);
pressDigit(8);
pressDigit(9);

delay(100);
pressOk();

delay(5000);

}

// the loop routine runs over and over again forever:
void loop() {

}

void pressDigit(int digit){
digitalWrite(value[digit], HIGH); // press digit from 0 to 9
delay(pressTime);
digitalWrite(value[digit],LOW);
delay(pressDelay);
}

void pressOk(){
digitalWrite(keyOk, HIGH); // press ok
delay(pressTime);
digitalWrite(keyOk,LOW);
delay(pressDelay);
}

void pressClear(){
digitalWrite(keyClear, HIGH); // press clear
delay(pressTime);
digitalWrite(keyClear,LOW);
delay(pressDelay);
}

void pressStar(){
digitalWrite(keyStar, HIGH); // press star
delay(pressTime);
digitalWrite(keyStar,LOW);
delay(pressDelay);
}

void pressUp(){
digitalWrite(keyUp, HIGH); // press up
delay(pressTime);
digitalWrite(keyUp,LOW);
delay(pressDelay);
}

void pressDown(){
digitalWrite(keyDown, HIGH); // press down
delay(pressTime);
digitalWrite(keyDown,LOW);
delay(pressDelay);
}

void pressHash(){
digitalWrite(keyHash, HIGH); // press hash
delay(pressTime);
digitalWrite(keyHash,LOW);
delay(pressDelay);
}

void pressOff(){
digitalWrite(keyOff, HIGH); // press off
delay(pressTime);
digitalWrite(keyOff,LOW);
delay(pressDelay);
}

void holdOff(){
digitalWrite(keyOff, HIGH); // hold off
delay(holdTime);
digitalWrite(keyOff,LOW);
delay(pressDelay);
}

void holdClear(){
digitalWrite(keyClear, HIGH); // press clear
delay(holdTime);
digitalWrite(keyClear,LOW);
delay(pressDelay);
}

void unlockPhone(){
pressOk();
pressStar();
}

Vill du ringa ett nummer från seriell övervaka?

Kod för att ringa från seriella monitor är också fäst. Skriv bara telefonnummer till terminalen avslutas med en koma (,) och tryck Ange. Phonoduino kommer att omedelbart slå numret. Koma anger du bara fullständiga skriva numret och vill ringa. Om du vill rensa alla nummer felaktigt enter skrivit bara skriva semikolon (;) och tryck. Skriv sedan ditt nummer.

Vill du skicka meddelande från seriella monitor?

Skriva meddelandet från mobiltelefon är tråkiga och tidskrävande. Det blir lätt att skriva sms från datorns tangentbord och kommer att spara massor av tid. En prov arduino skiss ges till skickade sms från seriella monitor. Bara ladda upp programmet till din arduino, öppna seriell övervaka, skriv ditt meddelande, skriv colon(:), skriv numret, ange mobilnummer eller ett tal du vill skickat ditt sms och pressa gå in nyckel. Din phonoduino kommer att skickas meddelandet till din önskat nummer.

Exempel: Hej, jag är från phonoduino.:123456789 *

Ovanstående kommando kommer skickas "Hej, jag är från phonoduino." till nummer "123456789"

< code >
int presstid = 100;
int pressDelay = 300;
int holdTime = 1000;
int typeTime = 100;
int typeDelay = 400.

int värde [16] = {16,6,12,9,5,15,10,14,13,18,17,11,3,4,8,2}.
char nummer [12].
char massegeChar [160];
int count = 0;
int numCount = 0;
int charDelay = 300;
int numberState = 0;
void setup() {
initiera digital PIN-koden som en utgång.
för (int jag = 2; jag < 20; i ++)
pinMode (i, matas);

Serial.BEGIN(9600);
holdClear();

}

loop rutinen körs för evigt om och om igen:
void loop() {
medan (Serial.available() > 0) {
char tecken = Serial.read();
om (karaktär == ' *') {
sentSMS();
Count = 0;
numCount = 0;
numberState = 0;
}
om (karaktär == ' :'){
numberState = 1;
numCount = 0;
Delay(10);
}
IF(numberState == 1) {
nummer [numCount] = karaktär;
numCount ++;
}
IF(numberState == 0) {
massegeChar [antal] = karaktär;
greve ++;
}
om (karaktär == '#') {
Count = 0;
numberState = 0;
}
}

}

void pressDigit (int tecken) {
digitalWrite (värde [siffra], hög); Tryck på siffra från 0 till 9
Delay(pressTime);
digitalWrite(value[digit],LOW);
Delay(pressDelay);
}

void pressOk() {
digitalWrite (keyOk, hög); Tryck på ok
Delay(pressTime);
digitalWrite(keyOk,LOW);
Delay(pressDelay);
}

void pressClear() {
digitalWrite (keyClear, hög); Tryck på klart
Delay(pressTime);
digitalWrite(keyClear,LOW);
Delay(pressDelay);
}

void pressStar() {
digitalWrite (keyStar, hög); Tryck stjärna
Delay(pressTime);
digitalWrite(keyStar,LOW);
Delay(pressDelay);
}

void pressUp() {
digitalWrite (keyUp, hög); Tryck på upp-
Delay(pressTime);
digitalWrite(keyUp,LOW);
Delay(pressDelay);
}

void pressDown() {
digitalWrite (TangentNed, hög); Tryck ner
Delay(pressTime);
digitalWrite(keyDown,LOW);
Delay(pressDelay);
}

void pressHash() {
digitalWrite (keyHash, hög); Tryck på hash
Delay(pressTime);
digitalWrite(keyHash,LOW);
Delay(pressDelay);
}

void pressOff() {
digitalWrite (keyOff, hög); Tryck på off
Delay(pressTime);
digitalWrite(keyOff,LOW);
Delay(pressDelay);
}

void holdOff() {
digitalWrite (keyOff, hög); hålla bort
Delay(holdTime);
digitalWrite(keyOff,LOW);
Delay(pressDelay);
}

void holdClear() {
digitalWrite (keyClear, hög); Tryck på klart
Delay(holdTime);
digitalWrite(keyClear,LOW);
Delay(pressDelay);
}

void typeA() {
digitalWrite (key2, hög);
Delay(typeTime);
digitalWrite (key2, låg);
Delay(typeDelay);
}
void typeB() {
typeA();
typeA();
}
void typeC() {
typeA();
typeA();
typeA();
}
void typeD() {
digitalWrite (key3, hög);
Delay(typeTime);
digitalWrite (key3, låg);
Delay(typeDelay);
}
void typeE() {
typeD();
typeD();
}
void typeF() {
typeD();
typeD();
typeD();
}
void typeG() {
digitalWrite (key4, hög);
Delay(typeTime);
digitalWrite (key4, låg);
Delay(typeDelay);
}
void typeH() {
typeG();
typeG();
}
void typeI() {
typeG();
typeG();
typeG();
}
void typeJ() {
digitalWrite (key5, hög);
Delay(typeTime);
digitalWrite (key5, låg);
Delay(typeDelay);
}
void typeK() {
typeJ();
typeJ();
}
void typeL() {
typeJ();
typeJ();
typeJ();

}
void typeM() {
digitalWrite (key6, hög);
Delay(typeTime);
digitalWrite (key6, låg);
Delay(typeDelay);
}
void typeN() {
typeM();
typeM();
}
void typeO() {
typeM();
typeM();
typeM();

}
void typeP() {
digitalWrite (key7, hög);
Delay(typeTime);
digitalWrite (key7, låg);
Delay(typeDelay);
}
void typeQ() {
typeP();
typeP();
}
void typeR() {
typeP();
typeP();
typeP();

}
void typeS() {
typeP();
typeP();
typeP();
typeP();
}
void typeT() {
digitalWrite (key8, hög);
Delay(typeTime);
digitalWrite (key8, låg);
Delay(typeDelay);
}
void typeU() {
typeT();
typeT();
typeT();
}
void typeV() {
typeT();
typeT();
typeT();

}
void typeW() {
digitalWrite (key9, hög);
Delay(typeTime);
digitalWrite (key9, låg);
Delay(typeDelay);
}
void typeX() {
typeW();
typeW();
}
void typeY() {
typeW();
typeW();
typeW();

}
void typeZ() {
typeW();
typeW();
typeW();
typeW();
}
void space() {
digitalWrite (key0, hög);
Delay(typeTime);
digitalWrite (key0, låg);
Delay(typeDelay);

}
void sentSMS() {
holdClear();

holdClear();
pressOk();
pressOk();
pressOk();
för (int jag = 0; jag < 160; i ++) {
Switch(massegeChar[i]) {
fallet "A":
fallet "a":
typeA();
Delay(charDelay);
bryta;

fallet "B":
fallet "b":
typeB();
Delay(charDelay);
bryta;

fallet "C":
fallet "c":
typeC();
Delay(charDelay);
bryta;

fall skulle ":
fall skulle ":
typeD();
Delay(charDelay);
bryta;

fallet "E":
fallet "e":
typeE();
Delay(charDelay);
bryta;

fallet "F":
fallet "f":
typeF();
Delay(charDelay);
bryta;

fallet "G":
fallet "g":
typeG();
Delay(charDelay);
bryta;

fallet "H":
fallet "h":
typeH();
Delay(charDelay);
bryta;

fallet "I":
fallet "i":
typeI();
Delay(charDelay);
bryta;

fallet "J":
fallet "j":
typeJ();
Delay(charDelay);
bryta;

fallet "K":
fallet "k":
typeK();
Delay(charDelay);
bryta;

fallet "L":
fallet "l":
typeL();
Delay(charDelay);
bryta;

fallet är ":
fallet är ":
typeM();
Delay(charDelay);
bryta;

fallet 'N':
fallet 'n':
typeN();
Delay(charDelay);
bryta;

fallet ' o ':
fallet ' o ':
typeO();
Delay(charDelay);
bryta;

fallet "P":
fallet "p":
typeP();
Delay(charDelay);
bryta;

fallet "Q":
fallet "q":
typeQ();
Delay(charDelay);
bryta;

fallet "R":
fallet "r":
typeR();
Delay(charDelay);
bryta;

fallet ":
fallet ":
typeS();
Delay(charDelay);
bryta;

'T i mål ":
't i mål ":
typeT();
Delay(charDelay);
bryta;

fallet "U":
fallet "u":
typeU();
Delay(charDelay);
bryta;

fallet "V":
fallet "v":
typeV();
Delay(charDelay);
bryta;

fallet "W":
fallet "w":
typeW();
Delay(charDelay);
bryta;

fallet "X":
fallet "x":
typeX();
Delay(charDelay);
bryta;

fall "Y":
fall "y":
typeY();
Delay(charDelay);
bryta;

fallet "Z":
fallet "z":
typeZ();
Delay(charDelay);
bryta;

fallet "":
Space();
bryta;
}
Delay(300);
}
pressOk();
pressOk();
callNumber();
}

void callNumber() {
för (int jag = 1; jag < 12, i ++) {
pressDigit(number[i]-'0'); [i] - är '0' för att konvertera tecken till intiger
}
pressOk();
holdClear();
holdClear();
}

Jag kommer att publiceras en effektivare arduino skiss senare.

Se Steg
Relaterade Ämnen

Återanvända gamla telefon batterier som ett Powerbank (earth Day Del1)

Jag antar att du förmodligen också tillhör majoriteten av världens befolkning som äger en smartphone och du förmodligen hade mer än en under de senaste åren av smartphone evolution.Med dem, hålla kommer används litium jonbatterier som man inte kan ba...

Hur-till hacka en Retro gamla telefon att LED enhet & förstärkare

DIY-hacka en roterande gamla telefon till LED enhet & mobiltelefon Audio förstärkare.Detta hack ger några användbara frågor, till exempel vi kan läsa böcker på natten med hjälp av våra gamla härliga retro telefon, under tiden använda telefonen som en...

Gamla telefon leksak Intercom enhet

detta foto Instructable visar hur man använder två gamla telefoner som ett billigt intercom mellan punkt A och punkt B. kan vara användbara mellan huset och butiken, mellan treehouse och fortet, mellan barnens rum, etc.Detta var ursprungligen bygga f...

Hur du använder gamla telefon för att bygga hem Internet saker

Med den snabba utvecklingen av teknik, och nu smartphone har gått in i varje hushåll, men som blev utslagen gamla mobiltelefoner och PHS är egentligen ingenting med det? Jag fick först fem gamla telefon att uppgradera din gamla telefon användning! An...

Ta bort kameralinsen från gamla telefon

Hej alla i detta instructable jag ska visa dig hur du tar bort en KAMERAOBJEKTIV från din gamla telefon.Allt du behöver är1. en gammal telefon2. pincettNu ta bort locket på baksidan och batteriet i telefonen. Ta sedan bort den främre sidan och baksid...

Den enklaste möjliga användningen för gamla telefoner

Eftersom vi vet alla att framtiden för bärbara kommunikation är bärbara, och så småningom inbäddade, teknik. Jag vill visa dig den enklaste möjliga användningen finns det för de gamla telefoner vi miljontals.Drumroll Vänligen!Ja, det någonsin så ödmj...

Programmera Arduino Pro Mini använder Arduino Uno

Hej alla. Idag ska jag visa hur man programmerar arduino pro mini använder arduino uno.Om du redan hade en arduino uno och du nyligen köp arduino pro behöver mini då du inte köpa USB till seriell omvandlare för att programmera arduino pro mini efters...

Min gamla verkstad

jag har nyligen flyttat och inte har den gamla verkstaden jag brukade ha. Vi brukade bo i en 1800 kvm hus i USA...Nu lever vi i en 1400 kvm Lägenhet i Japan. Jag förlorade mitt garage och några av mina verktyg till lagring, men jag kan fortfarande gö...

Min "Gamla" Solar Setup

detta är min sol setup, dess stökigt men det fungerar. Det finns enheter som du kan köpa som gör samma sak som jag har byggt. Denna setup ta avgift från mina solpaneler, laddar batteriet, och ger mig 12v DC och 120v AC. Denna inställning är en fortsä...

Saker du kan göra med gamla telefoner

jag få en massa gamla elektronik från midjan lagerplatsen, allt från mobiltelefoner till datorer och skrivare. Gamla och föråldrade telefoner är en av de gamla elektronik får jag mest och jag använder dem för en mängd olika saker, detta Instructable...

Mini robot ett Arduino

alla spelar motion spel på sin mobil någonsin undrat vad det skulle vara som att styra saker med rörelsestyrning. I detta instructable jag ska visa dig hur man bygger en android rörelse kontrollerade robot som överföra video via wifi eller via VHF. D...

Mini CNC maskin Arduino baserade & Adafruit föraren Motor L293D v1 & 2 * Mini Stepper CD/DVD-spelare #1

I detta projekt kommer jag visa dig hur man enkelt bygga din egen billiga Arduino Mini CNC Plotter!För X- och Y-axeln vi kommer att använda stepper motors och räcken från två dvd/CD-skivor! Tryckområdet blir max 4x4cm.Steg 1: Video i youtube:Steg 2:...

Shrinkify min gamla audio förstärkare

Hej vänner detta är min första instructable, jag hade en gammal casate spelaren förstärkare... som ni kan se det var stora och Ylvas...och casate spelaren var också distroyed eftersom jag använde dess motor och delar i mitt andra projekt...Så vänster...

Hur man programmerar Arduino Pro Mini använder Arduino Uno och ArduShield - utan kablar

Huvudsyftet med denna anvisning är att visa dig hur man programmerar i mest lätt sätt Arduino Mini eller Arduino Pro Mini med Arduino UNO och ArduShield – utan kablar.Steg för steg handledning, med några åtgärder för att hoppa av Awesome PCB.Steg 1 -...

Sudo autentisering via gamla telefon knappsats

detta projekt handlar om att göra en alternativ autentiseringsmetod för sudo körs på Linuxsystem använda en arduino med en knappsats från en gammal telefon.Steg 1: flyttalsrenderingsmålKnappsatsen används i detta projekt har normalt fyra therminal. e...

MINI Cooper telefon Dock

Efter fönstret bröt monterade telefon dock köpte jag online innan jag ens skulle kunna använda det jag bestämde mig att ta saker i egna händer och bygga en docka som integrerar lite bättre med min bil.Den tidigare ägaren av min MINI bort eller lyckat...

Mini Alarma PIR Arduino

Saludos en todos!Debo comenzar diciendo de que este es mi primer instructable y está totalmente dedicado a la página Databugs (donde yo participo). Diciendo lo främre nr mig skepnad aventurar en göra en ingles aun, por otro lado es sannolika que siga...

Gamla skolan Arduino MIDI Sequencer

använda en Arduino single-board dator och en "sköld" ombord, detta projekt skapar en MIDI-sequencer som kan spela in och spela upp sekvenser av MIDI-noter. Det liknar gamla skolan sequencers i den sekvensen är monofoniska (en anmärkning i taget)...

Gamla telefon reborn

ta en gammal telefon och någon form av pluggen staven som du väljerSteg 1: telefon Få en telefonSteg 2: hitta en stav i detta fall en bit av en lampaSteg 3: borra, limma borra, limmaSteg 4: montera en sak av skönhet är en glädje för evigt, -min man J...