APC220 Radio; Arduino: Difference between revisions

From wikiluntti
Line 1: Line 1:
== Introduction ==
== Introduction ==


APC220 is a transmitter--receiver.
APC220 is a transmitter--receiver. Use TTL/USB converter in computer.


Use TTL/USB converter in computer.
Note the pins:
* No pins in J2 and J3: Programming is possible
* Pins on J2-1 and J2-2: transmit using radio
* Pins on J3-1 and J3-2: save data to SD card


== Theory ==
== Theory ==

Revision as of 19:35, 10 February 2023

Introduction

APC220 is a transmitter--receiver. Use TTL/USB converter in computer.

Note the pins:

  • No pins in J2 and J3: Programming is possible
  • Pins on J2-1 and J2-2: transmit using radio
  • Pins on J3-1 and J3-2: save data to SD card

Theory

Frequencies

433.050 MHz - 434.800 MHZ.


RF Magic

Rf Magic http://www.dfrobot.com/image/data/TEL0005/rfmagic.rar can be used but it unreliable. You should use Arduino to program radio.

USB-TTL converter

SiLabs.com CP210x USB-UART VCP drivers. Run CP210xVCPInstaller_x64 at https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers#windows

APC220 Pinouts

  • VIN: Module power supply
  • GND: Ground
  • RX: Data receive through serial protocol
  • TX: Data transmit through serial protocol
  • SET: Mode Setting
  • AUX: For other commands
  • EN: Enable module

Use Arduino's pins GND, 8, 9, 10, 11, 12 and 13.


It only need four pins connect with Arduino board.

Note: Disconnect the RX and TX pin with Arduino before download program, otherwise the program download fails.

Arduino

Library: https://github.com/PaulStoffregen/SoftwareSerial

apc220cfg https://learn.andoyaspace.no/wp-content/uploads/2016/11/apc220Cfg.zip

J2 & J3

/*
  Modified on March 09, 2021
  Modified by MohammedDamirchi from https://github.com/PaulStoffregen/SoftwareSerial
  Home
  https://electropeak.com/learn/interfacing-apc220-rf-transceiver-data-communication-module-with-arduino/
*/


#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Terminal program

Br@y++:n Terminal v.1.9b https://sites.google.com/site/terminalbpp/

Exercises

References

https://static1.squarespace.com/static/607d6dc320b1be007db03750/t/6103f1a1bce34815144b959f/1627648418459/APC220_Datasheet.pdf