Pengaturan

Gambar

Lainnya

Tentang KASKUS

Pusat Bantuan

Hubungi Kami

KASKUS Plus

© 2024 KASKUS, PT Darta Media Indonesia. All rights reserved

rarascute16Avatar border
TS
rarascute16
kontrol servo via sms
Misi para abang-abang Mikrokontroler
help me dunk nie mau bikin TA nie kontrol dua serpo lewat sms

ane minta masukan dunk para master dan yang udah pernah ngerjain TA pake komunikasi serial

nie program ane


tapi belum di tambah dengan serpo :
check this
========================================================
#include <mega16.h>
#ifndef __SLEEP_DEFINED__
#define __SLEEP_DEFINED__
.EQU __se_bit=0x80
.EQU __sm_mask=0x70
.EQU __sm_powerdown=0x20
.EQU __sm_powersave=0x30
.EQU __sm_standby=0x60
.EQU __sm_ext_standby=0x70
.EQU __sm_adc_noise_red=0x10
.SET power_ctrl_reg=mcucr
#endif
#include <stdio.h>
#include <delay.h>
#include <string.h>
#include <stdlib.h>

unsigned char data,flag_ser,r,s,flag_on,f_kirim;
char buffer[70],buf1[70],buf2[70],buf_OK[5] ;
unsigned char t,cek,inbox_str[20];
void midstr(char *s1,char *s2,unsigned char m,unsigned char p);

char get_serial(char *str1);
char ring;
char kode1[10]={"+CMTI:"};
char kode2[10]={"OK"};
char kode3[10]={"RING"};

char kode_ON[10]={"hidup"};
char kode_OFF[10]={"OFF"};
char no_sender[20];
char isi_sms[20];

signed char tanda,i;
unsigned char pos_str1,long_str,inbox;
//-------------------------------------
char get_serial(char *str1)
{
r=0;
flag_ser=0;
data='';
do
{
while(!UCSRA.7);
data=UDR;
if(data=='\r'){}
else if (data=='\n'){
flag_ser=1;}
else
{
str1[r]=data;
r++;
}
}
while(!flag_ser);
}

//======================= ambil tengah string ===============
void midstr(char *s1,char *s2,unsigned char m,unsigned char p)
{
unsigned char I,J,N;
for(N=0;s2[N];N++);
if (m>=0 && m<=N-1)
{
for(I=m,J=0;(J<p&&s2[I]);I++,J++)
s1[J]=s2[I];
s1[p]='\0';
}
else
s1[0]='\0';
}
//----
void show_sms()
{

pos_str1=strpos(buffer,','); //klo ada posisi=10
long_str=strlen(buffer); //12
long_str = long_str - pos_str1;
midstr(inbox_str,buffer,pos_str1+1,long_str); //ngambil dari buffer mulai posisi ke-2 (awal 0) sejumlah 4
inbox=atoi(inbox_str);

delay_ms(2000);
printf("AT+CMGR=%d\r\n",inbox);
get_serial(buf_OK); //ENTER
get_serial(buf1); // no hp dll
get_serial(buf2); //isi sms

tanda=strcmp(buf2,kode_ON);
if(tanda==0)
{
PORTC.2=1; //relay ON
delay_ms(2000);
PORTC.3=1;
flag_on=1;
delay_ms(1000);
printf("AT+CMGS=089619224815\r\n");
delay_ms(1000);
printf("sudah ON");
putchar(26);
printf("\r\n");
}
else
{
tanda=strcmp(buf2,kode_OFF);
if(tanda==0)
{
PORTC=0x00; //relay OFF
flag_on=0;
delay_ms(2000);
printf("AT+CMGS=089619224815\r\n");
delay_ms(1000);
printf("sudah OFF");
putchar(26);
printf("\r\n");
}
}

delay_ms(4000);
printf("AT+CMGD=%d\r\n",inbox);
delay_ms(2000);
for(s=0;s<70;s++)
{
buffer[s]='';
buf1[s]='';
buf2[s]='';
}
}

void main(void)
{
DDRC=0xff;
PORTC=0x00;
DDRD.4=0;
PORTD.4=1;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;
//PORTC.3=1;
//PORTC.2=1;
delay_ms(2000);


while (1)
{
if ((PIND.4==1)&&(f_kirim==0))
{
delay_ms(1000);
printf("AT+CMGS=089619224815\r\n");
delay_ms(1000);
printf("LISTRIK MATI");
putchar(26);
printf("\r\n");
f_kirim=1;
}

get_serial(buffer);
i=strpos(buffer,':');//klo ada posisi=5
if(i>0)
{
strncpy(buf1,buffer,i+1);
tanda=strcmp(buf1,kode1);
if(tanda==0) show_sms();
}
else
{
tanda=strcmp(buffer,kode3);
if(tanda==0)
{
ring++;
if (ring>7)
{
ring=0;
printf("ATH\r\n");
if (flag_on==0)
{
PORTC.2=1;
delay_ms(2000);
PORTC.3=1;//relay ON
flag_on=1;
delay_ms(2000);
printf("AT+CMGS=089619224815\r\n");
delay_ms(1000);
printf("sudah ON");
putchar(26);
printf("\r\n");
}
else
{
PORTC=0x00;//relay OFF
flag_on=0;
delay_ms(2000);
printf("AT+CMGS=089619224815\r\n");
delay_ms(1000);
printf("sudah OFF");
putchar(26);
printf("\r\n");
}
}

}

}

};
}
=====================================================

syntax nyolong punya temen
masih bingung untuk inisial 2 motor servo nya gimana ia ?
dan kode tambahanNya juga
hHeeeee..............kontrol servo via sms
0
785
1
GuestAvatar border
Komentar yang asik ya
Mari bergabung, dapatkan informasi dan teman baru!
Hardware Computer
Hardware ComputerKASKUS Official
31.1KThread10KAnggota
Urutkan
Terlama
GuestAvatar border
Komentar yang asik ya
Ikuti KASKUS di
© 2023 KASKUS, PT Darta Media Indonesia. All rights reserved.