PIC16F628A과의 Arduino UNO가 ...PIC16F628A I는 433 MHz의 송신기 및 수신기를 사용하여 (433)는 I
I은 PIC MikroC 위해 사용 ...
실패한다.
제 목적은 PIC16F628A에서 보내는 Arduino UNO의 데이터를 읽는 것입니다. 하지만
PIC16F628A (송신기)의 회로 ... 그것이 성공하지 수 : The circuit of Transmitter
I의 Arduino는 + 5V까지의 수신기의 제 1 핀에 연결; 아두 이노의 12.pin에 수신기
초 핀의 Arduino의 GND 핀 수신기
마지막 핀.
송신기 (PIC16F628A)
char pre[15]={'U','U','U','U','U',255,255,255,255,255,0,0,0,0,0}; //start bytes...
char ileri[3]={'f','r','w'};
char geri[3]={'b','c','k'};
char dur[3]={'d', 'u', 'r'};
char i=0,j=0;
void kurulum()
{
CMCON= 7;
TRISB= 2;
UART1_Init(2400);
delay_ms(100);
}
void main()
{
kurulum();
while(1)
{
for(i=0;i<15;i++)
{
UART1_Write(pre[i]);
}
for(j=0;j<10;j++)
{
for(i=0;i<3;i++)
{
while(!UART1_Tx_Idle());
UART1_Write(ileri[i]);
}
}
//*************************************************************
for(i=0;i<15;i++)
{
UART1_Write(pre[i]);
}
for(j=0;j<10;j++)
{
for(i=0;i<3;i++)
{
while(!UART1_Tx_Idle());
UART1_Write(geri[i]);
}
}
for(i=0;i<15;i++)
{
UART1_Write(pre[i]);
}
for(j=0;j<10;j++)
{
for(i=0;i<3;i++)
{
while(!UART1_Tx_Idle());
UART1_Write(dur[i]);
}
}
}
}
수신기 (아두 이노)이 코드를 시도
// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley ([email protected])
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
#include <VirtualWire.h>
const int led_pin = 13;
const int receive_pin = 12;
void setup()
{
delay(1000);
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_set_rx_pin(receive_pin);
//vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2400); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
pinMode(led_pin, OUTPUT);
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(led_pin, HIGH); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i], HEX);
Serial.print(' ');
}
Serial.println();
digitalWrite(led_pin, LOW);
}
}
; 하지만 작동하지 않았습니다 ... 다른 코드가 있습니다.
void setup() {
Serial.begin(2400);
}
void loop() {
if (Serial.available() > 0){
Serial.println(Serial.read());
}
}
시도하기 전에; 나는
나는 보통 ...
내가 원하는대로 작동하지 않았다 byte.i '0'을 가지고
첫 번째 테스트 양측은 독립적으로 제대로 작동하는 것으로 알려진 수신기 또는 송신기를 사용합니다. 양측이 서로 연결을 시도 할 때 작동하지 않을 가능성이 있으므로 연결 설정 (보드, 패리티, 배선 자체 등)을 조사해야합니다.) –
고마워요. 나는 이미 두 개의 사진이있는 모듈 두 가지를 모두 시험해 보았습니다 ... 어떻게 이들을 함께 연결할 수 있습니까? – PIC16F84A
동일한 전송 속도와 모든 것을 사용하는지 확인하십시오. 동일한 전압 레벨에서 작동합니까? 함께 gnd를 연결하고 하나의 tx 라인은 다른 rx 라인에 –