Pic ile Arduinı Arasında RS232

Başlatan said, 20 Mayıs 2020, 21:27:38

said

Mehaba hiç pic ile arduino arasında seri haberleşme yapan oludumu tecrübesi olan var mı acaba

Dtmf


Dtmf

Sundan sordum yardimci olacagim fakat biraz arastirmani isteyecegim.

said

pic16f1826
araştırıyorum yabancı kaynaklara bakmaya başladım. hep farklı şeyler 1 2 tanesini denedim sonuç alamadım. puts() komutuna gelince durup kalıyor

Dtmf

BMP180 barometric sonsorden ardunio ile okuyip sicaklik verisini almistim deneme amacli yani amacim barometrik degerleri okumakti pic te hesabi zor o yuzden isine yararsa paylasirim

said

paylaşırsanız sevinirim temel kodlar konusunda fikir verir en azından

Dtmf

ARDUNIO ıle pıc arasında basıt bır deneme programı ardunıoya BMP180  baglı denemesı.asagıdakı program pıc ıcın
'****************************************************************
'*  Name    :ARDUNIO +PIC16F877.BAS                                      
'*  Author  : .......                   *
'*  Notice  : Copyright (c) 2019 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 22.05.2020                                        *
'*  Version : 3.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device=16F877A
XTAL=20
ALL_DIGITAL TRUE
TRISA=0:PORTA=0
TRISB=0:PORTB=0
TRISC=%10000000:PORTC=0
PORTD=0:PORTD=0
TRISE=0:PORTE=0
Declare LCD_TYPE alpha  
Declare LCD_LINES 2
Declare LCD_INTERFACE 4
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.0
Declare LCD_ENPIN PORTB.1

;Declare HSERIAL_BAUD=9600
;Declare HSERIAL_RCSTA=%10010000 ;DONANIMSAL RX TX AKTIF,8N1 ALIM AKTIF,SUREKLI ALIM AKTIF
;Declare HSERIAL_TXSTA=%00100000
Dim AL1 As Byte
Dim AL2 As Byte
Dim AL3 As Byte
Dim AL4 As Byte
Dim AL5 As Byte
;DIM AL[6] AS BYTE
Dim SAY As Byte
Dim X As Byte
DelayMS 200
;==========================
BASLA:
Print At 1,1,"ARDUNIO TRANSMIT";,Dec AL1
SerIn PORTC.7,84,[AL1,AL2,AL3,AL4,AL5]
Print At 2,1,"TEMP:",AL1,AL2,AL3,AL4,AL5
;Print At 3,1,"AL3:",Dec AL3
;Print At 4,1,"AL4:",Dec AL4
DelayMS 5
GoTo BASLA
;===========================================================

Dtmf

ardunıo BMP180 okumak ıcın kullandıgım program.pıcıcın paylastıgım programda serın yazan bolumdekı al1,al2,..yzana bolumde al degıskenlerının sayısını cogaltarak ardunıodan ıstedıgın kadar verıyı alabılırsın.
serın bolumunde,ardunıonun bmp180 den okudugu sıcaklık ornegın 25.01, al1=2 ve al2=5 al3=. al4=0 al5=1 umarım anlasmıssındır.bılıyorsun pıc e bu verılerı ardunıo dan gonderen komut serıal prınt  :) kolay gelsın
 
#include <Wire.h>
#include <Adafruit_BMP085.h>

/*************************************************** 
  This is an example for the BMP085 Barometric Pressure & Temp Sensor

  Designed specifically to work with the Adafruit BMP085 Breakout 
  ----> https://www.adafruit.com/products/391

  These displays use I2C to communicate, 2 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

// Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!)
// Connect GND to Ground
// Connect SCL to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5
// Connect SDA to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4
// EOC is not used, it signifies an end of conversion
// XCLR is a reset pin, also not used here

Adafruit_BMP085 bmp;
  
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
	Serial.println("Could not find a valid BMP085 sensor, check wiring!");
	while (1) {}
  }
}
  
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    
    // Calculate altitude assuming 'standard' barometric
    // pressure of 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");

    Serial.print("Pressure at sealevel (calculated) = ");
    Serial.print(bmp.readSealevelPressure());
    Serial.println(" Pa");

  // you can get a more precise measurement of altitude
  // if you know the current sea level pressure which will
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.
    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(101500));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}

said

Alıntı yapılan: Dtmf - 22 Mayıs 2020, 21:50:55ARDUNIO ıle pıc arasında basıt bır deneme programı ardunıoya BMP180  baglı denemesı.asagıdakı program pıc ıcın
'****************************************************************
'*  Name    :ARDUNIO +PIC16F877.BAS                                      
'*  Author  : .......                   *
'*  Notice  : Copyright (c) 2019 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 22.05.2020                                        *
'*  Version : 3.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device=16F877A
XTAL=20
ALL_DIGITAL TRUE
TRISA=0:PORTA=0
TRISB=0:PORTB=0
TRISC=%10000000:PORTC=0
PORTD=0:PORTD=0
TRISE=0:PORTE=0
Declare LCD_TYPE alpha  
Declare LCD_LINES 2
Declare LCD_INTERFACE 4
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.0
Declare LCD_ENPIN PORTB.1

;Declare HSERIAL_BAUD=9600
;Declare HSERIAL_RCSTA=%10010000 ;DONANIMSAL RX TX AKTIF,8N1 ALIM AKTIF,SUREKLI ALIM AKTIF
;Declare HSERIAL_TXSTA=%00100000
Dim AL1 As Byte
Dim AL2 As Byte
Dim AL3 As Byte
Dim AL4 As Byte
Dim AL5 As Byte
;DIM AL[6] AS BYTE
Dim SAY As Byte
Dim X As Byte
DelayMS 200
;==========================
BASLA:
Print At 1,1,"ARDUNIO TRANSMIT";,Dec AL1
SerIn PORTC.7,84,[AL1,AL2,AL3,AL4,AL5]
Print At 2,1,"TEMP:",AL1,AL2,AL3,AL4,AL5
;Print At 3,1,"AL3:",Dec AL3
;Print At 4,1,"AL4:",Dec AL4
DelayMS 5
GoTo BASLA
;===========================================================
pic basic ile mi yaptınız siz
ben pic basic o kadar iyi değilim c ile yapmaya çalışıyorum

Powered by EzPortal