Publicat la data

Beating heart Arduino MAX7219 8×8 LED matrix

Beating heart Arduino MAX7219 8×8 LED matrix

Acesta este un proiect foarte simplu pentru a afișa o inimă care bate cu o placă Arduino și o matrice LED de 8×8 cu driver MAX7219

Matrix Arduino MAX7219

Cablarea este foarte simplă :

PIN MAX7219 VCC> Arduino pin 5V

PIN MAX7219 GND> Arduino pin GND

PIN MAX7219 DIN> Arduino pin 2

PIN MAX7219 CS> Arduino pin 3

PIN MAX7219 CLOCK> Arduino pin 4

Sketch-ul Arduino nu folosește nicio bibliotecă, deci este bine să înțelegeți cum să lucrați direct cu cipul MAX7219 prin registre (through registers).

Cod :

//–––––––––––––-

int ANIMDELAY = 100;  // animation delay, deafault value is 100
int INTENSITYMIN = 0; // minimum brightness, valid range [0,15]
int INTENSITYMAX = 8; // maximum brightness, valid range [0,15]

int DIN_PIN = 2;      // data in pin
int CS_PIN = 3;       // load (CS) pin
int CLK_PIN = 4;      // clock pin

// MAX7219 registers
byte MAXREG_DECODEMODE = 0x09;
byte MAXREG_INTENSITY  = 0x0a;
byte MAXREG_SCANLIMIT  = 0x0b;
byte MAXREG_SHUTDOWN   = 0x0c;
byte MAXREG_DISPTEST   = 0x0f;

const unsigned char heart[] =
{
  B01100110,
  B11111111,
  B11111111,
  B11111111,
  B01111110,
  B00111100,
  B00011000,
  B00000000
};



void setup ()
{
  pinMode(DIN_PIN, OUTPUT);
  pinMode(CLK_PIN, OUTPUT);
  pinMode(CS_PIN, OUTPUT);

  // initialization of the MAX7219
  setRegistry(MAXREG_SCANLIMIT, 0x07);
  setRegistry(MAXREG_DECODEMODE, 0x00);  // using an led matrix (not digits)
  setRegistry(MAXREG_SHUTDOWN, 0x01);    // not in shutdown mode
  setRegistry(MAXREG_DISPTEST, 0x00);    // no display test
  setRegistry(MAXREG_INTENSITY, 0x0f & INTENSITYMIN);

  // draw hearth
  setRegistry(1, heart[0]);
  setRegistry(2, heart[1]);
  setRegistry(3, heart[2]);
  setRegistry(4, heart[3]);
  setRegistry(5, heart[4]);
  setRegistry(6, heart[5]);
  setRegistry(7, heart[6]);
  setRegistry(8, heart[7]);
}


void loop ()
{
  // second beat
  setRegistry(MAXREG_INTENSITY, 0x0f & INTENSITYMAX);
  delay(ANIMDELAY);
  
  // switch off
  setRegistry(MAXREG_INTENSITY, 0x0f & INTENSITYMIN);
  delay(ANIMDELAY);
  
  // second beat
  setRegistry(MAXREG_INTENSITY, 0x0f & INTENSITYMAX);
  delay(ANIMDELAY);
  
  // switch off
  setRegistry(MAXREG_INTENSITY, 0x0f & INTENSITYMIN);
  delay(ANIMDELAY*6);
}


void setRegistry(byte reg, byte value)
{
  digitalWrite(CS_PIN, LOW);

  putByte(reg);   // specify register
  putByte(value); // send data

  digitalWrite(CS_PIN, LOW);
  digitalWrite(CS_PIN, HIGH);
}

void putByte(byte data)
{
  byte i = 8;
  byte mask;
  while (i > 0)
  {
    mask = 0x01 << (i - 1);        // get bitmask
    digitalWrite( CLK_PIN, LOW);   // tick
    if (data & mask)               // choose bit
      digitalWrite(DIN_PIN, HIGH); // send 1
    else
      digitalWrite(DIN_PIN, LOW);  // send 0
    digitalWrite(CLK_PIN, HIGH);   // tock
    --i;                           // move to lesser bit
  }
}
//---------------------------------

emo-avataris work bro...
Publicat la data

Arduino Remote Bluetooth SPP-C on/off LED

Arduino Remote Bluetooth SPP-C on/off LED

Spp-C-Bluetooth-Slave-Module-roboromania-fat

Spp-C-Bluetooth-to-Serial-Arduino-remote

Avem nevoie de :
o placă de dezvoltare tip Arduino UNO (sau oricare)
un modul Bluetooth SPP-C
cabluri Dupont

Cel mai simplu cod : (atenție când copiați codul ar putea sa apară unele erori de la fonturi)

//roboromania.ro
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,7); // 8 –> pin TX, 7 –> pin RX
#define LED 13
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop()
{
if (mySerial.available()) {
int inByte = mySerial.read();
Serial.println(inByte);
if(inByte == ‘1’){
digitalWrite(LED, LOW);
delay(500);
}
if(inByte == ‘2’){
digitalWrite(LED, HIGH);
delay(500);
}
}
}

Atenție la declararea pinilor.

Acum mai trebuiește instalată și configurată aplicația pentru telefon din Google Play :

Arduino bluetooth controller(cu iconita din figura)

ikon

Nume : JDY-31-SPP

Pin : 1234

Setați butoanele cu caracterele alese (in exemplu  ‘1’  și  ‘2’)

Se aprinde și se stinge LED(13) de pe placa Arduino.

Publicat la data

Work from home >> fake mouse movement keep you free from work

Work from home >> fake mouse movement keep you free from work

Cei care lucrează de acasă și trebuie să rămână conectați.   Those who work from home and need to stay connected.

Nimic mai simplu.  Nothing easier.

Placă de dezvoltare Arduino Leonardo în USB-ul PC sau laptop

Hai să vă dau și un exemplu de cod, deși e prea simplu.  Let me give you an example of code, although it’s too simple

#include „Mouse.h”

void setup() {
Mouse.begin();
}

void loop() {
Mouse.move(random(-10,10), random(-10,10), 0);
delay(1000);
}

 

Gata hai la cumparaturi …..

UNO (2)

Publicat la data

Acționarea unei lumini în curte cu Arduino și senzorul PIR cu timp variabil pe ON

Acționarea unei lumini în curte cu Arduino și senzorul PIR cu timp variabil pe ON emo cu ciocan

Arduino-pir-releu-bec

Necesar de piese :

Placa de dezvoltare Arduino (oricare),

Senzor PIR

Modul releu

Cod :

int Relay = 9;
int SensorPir = 8;
int timeDelay = 10; // timpul in sec.

void setup(){

pinMode(Relay, OUTPUT);
pinMode(SensorPir, INPUT);
}

void loop(){

if (digitalRead(SensorPir) == HIGH){
digitalWrite(Relay, HIGH);
delay(timeDelay*1000L);
} else {
digitalWrite(Relay,LOW);
}
}

 

emo-avatar

Publicat la data

Robot 4WD Roboromania autonom ocolire obstacole cu senzor cu ultrasunete

Robot 4WD Roboromania autonom ocolire obstacole cu senzor cu ultrasunete

Aveti nevoie de :
o Placă de dezvoltare tip Arduino UNO (oricare)
un Modul driver motoare L293N
un Senzor cu ultrasunete HCSR04
un Kit șasiu 4WD
cabluri Dupont

kit-4wd-ultra-robo

Cum asamblăm șasiul : https://www.youtube.com/watch?v=uW8YVcBjPGU

Cum instalam o platforma Arduino UNO :

https://roboromania.ro/manuale/Arduino-1-Starter-Kit-manual-roboromania.pdf

sau

https://roboromania.ro/arduino_books/Introduction-Arduino-2013.pdf

 

Cel mai simplu cod :

//––––––––––––––

// Robot 2WD Roboromania autonom ocolire obstacole
// roboromania.ro pentru ID Arduino.1.6.x atentie sa aveti „libraries” – > „NewPing”

// ––––––––––––––-

// Robot 2WD Roboromania autonom ocolire obstacole – versiunea corectata (si testata) 2018.02.03
// roboromania.ro

#include <NewPing.h>

#define TRIG_PIN 8
#define ECHO_PIN 7
#define MAX_DISTANCE 400
#define COLL_DIST 20 // distanta de coliziune la care robot stop si inapoi este de : 20cm
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

// L298n module
// 1(+)inainte dreapta = DrFr
// 2(+)inapoi dreapta = DrSp
// 3(+)inainte stanga = StFr
// 4(+)inapoi stanga = StSp

int DrFr = 3;
int DrSp = 2;
int StFr = 4;
int StSp = 5;

void setup() {
Serial.begin(9600);
pinMode(DrFr,OUTPUT);
pinMode(StFr,OUTPUT);
pinMode(DrSp,OUTPUT);
pinMode(StSp,OUTPUT);
digitalWrite(DrFr,LOW);
digitalWrite(StFr,LOW);
digitalWrite(DrSp,LOW);
digitalWrite(StSp,LOW);
}

int scan() {
return (sonar.ping() / US_ROUNDTRIP_CM); //masurare distanta in cm
}

void loop() {
int Dist = scan(); // masuram distanta curenta
// Serial.println(Dist);
if (( Dist > 0 ) || ( Dist < COLL_DIST )) { // daca distanta curenta < decit distanta de coliziune
moveStop();
moveBackward();
delay(500);
turnRight();
delay(300);
} else {
moveForward();
}
}

void moveStop() {
digitalWrite(DrFr,LOW);
digitalWrite(StFr,LOW);
digitalWrite(DrSp,LOW);
digitalWrite(StSp,LOW);
}

void moveForward() {
digitalWrite(DrFr,HIGH);
digitalWrite(StFr,HIGH);
digitalWrite(DrSp,LOW);
digitalWrite(StSp,LOW);
}

void moveBackward() {
digitalWrite(DrFr,LOW);
digitalWrite(StFr,LOW);
digitalWrite(DrSp,HIGH);
digitalWrite(StSp,HIGH);
}

void turnRight() {
digitalWrite(DrFr,LOW);
digitalWrite(StFr,HIGH);
digitalWrite(DrSp,HIGH);
digitalWrite(StSp,LOW);
}

void turnLeft() {
digitalWrite(DrFr,HIGH);
digitalWrite(StFr,LOW);
digitalWrite(DrSp,LOW);
digitalWrite(StSp,HIGH);
}

 

//––––––––––-

Alt exemplu de cod :

https://roboromania.ro/2018/02/04/robot-2wd-roboromania-autonom-ocolire-obstacole-realizat-de-stefan-ziegler-din-arad/

Publicat la data

Lua ESP8266MOD Server DHT 11(22)

Lua ESP8266MOD Server DHT 11(22)

pagina

Necesar:

  1. Modul Lua ESP8266MOD Wireless
  2. Senzor temperatură şi umiditate DHT11

  3. Breadboard 420

  4. Cabluri Dupont (10 bucaţi) tată-tată

ESP8266MOD DHT11/DHT22 Temperature and Humidity Web Server

esp8266mod-dht

În acest proiect, veți crea un server web independent cu un ESP8266 care afișează temperatura și umiditatea cu un senzor DHT11 sau DHT22 folosind Arduino IDE (rezistența din poză nu e neapărat necesară). Serverul web pe care îl veți construi poate fi accesat cu orice dispozitiv care are un browser în rețeaua dvs. locală.

Installing the DHT Library for ESP8266

1. Deschideți IDE-ul Arduino și accesați Sketch > Include Library > Manage Libraries. Managerul bibliotecii ar trebui să se deschidă.

2. Căutați „DHT” în caseta Căutare și instalați biblioteca DHT de la Adafruit.

adafruit_dht_library

3. După instalarea bibliotecii DHT de la Adafruit, tastați „Adafruit Unified Sensor” în caseta de căutare. Derulați până la capăt pentru a găsi biblioteca și a o instala.

adafruit_unified_sensor_library

După instalarea bibliotecilor, restart ID-ul Arduino.

Instalează :

Installing the ESPAsyncWebServer library:  https://github.com/me-no-dev/ESPAsyncWebServer

Installing the ESPAsync TCP Library:  https://github.com/me-no-dev/ESPAsyncTCP

Install the ESP8266 Board in Arduino IDE

4-install-esp8266-board

1-install-esp8266-board-add-on-in-arduino-ide-search-esp8266

2-esp8266-board-add-on-in-arduino-ide-installed

3-install-esp8266-board-add-on-in-arduino-ide-select-board

Deschideți ID-ul Arduino și copiați următorul cod :

// ROBOROMANIA LUA ESP8266MOD DHT
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <Hash.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>

// completează cu nume și parolă locală Wifi network
const char* ssid = „DIGI-24”;
const char* password = „robo”;

#define DHTPIN D1 // Digital pin D1 connected to the DHT sensor

// tip senzor
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE);

float t = 0.0;
float h = 0.0;

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);
unsigned long previousMillis = 0; // will store last time DHT was updated

// Updates DHT readings every 10 seconds
const long interval = 10000;

const char index_html[] PROGMEM = R”rawliteral(
<!DOCTYPE HTML><html>
<head>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<link rel=”stylesheet” href=”https://use.fontawesome.com/releases/v5.7.2/css/all.css” integrity=”sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr” crossorigin=”anonymous”>
<style>
html {
font-family: Arial;
display: inline-block;
margin: 0px auto;
text-align: center;
}
h2 { font-size: 2.0rem; }
p { font-size: 2.0rem; }
.units { font-size: 1.2rem; }
.dht-labels{
font-size: 1.5rem;
vertical-align:middle;
padding-bottom: 15px;
}
</style>
</head>
<body>
<h2>ESP8266 DHT SERVER ROBOROMANIA roboromania.ro</h2>
<p>
<i class=”fas fa-thermometer-half” style=”color:#059e8a;”></i>
<span class=”dht-labels”>Temperature</span>
<span id=”temperature”>%TEMPERATURE%</span>
<sup class=”units”>&degC</sup>
</p>
<p>
<i class=”fas fa-tint” style=”color:#00add6;”></i>
<span class=”dht-labels”>Humidity</span>
<span id=”humidity”>%HUMIDITY%</span>
<sup class=”units”>%</sup>
</p>

<p style=”font-size:80px”>&#128540;</p>
</body>
<script>
setInterval(function ( ) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(„temperature”).innerHTML = this.responseText;
}
};
xhttp.open(„GET”, „/temperature”, true);
xhttp.send();
}, 10000 ) ;

setInterval(function ( ) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(„humidity”).innerHTML = this.responseText;
}
};
xhttp.open(„GET”, „/humidity”, true);
xhttp.send();
}, 10000 ) ;
</script>
</html>)rawliteral”;

// Replaces placeholder with DHT values
String processor(const String& var){
//Serial.println(var);
if(var == „TEMPERATURE”){
return String(t);
}
else if(var == „HUMIDITY”){
return String(h);
}
return String();
}

void setup(){

Serial.begin(115200);
dht.begin();

// Connect to Wi-Fi
WiFi.begin(ssid, password);
Serial.println(„Connecting to WiFi”);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println(„.”);
}

// Print ESP8266 Local IP Address
Serial.println(WiFi.localIP());

// Route for root / web page
server.on(„/”, HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, „text/html”, index_html, processor);
});
server.on(„/temperature”, HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, „text/plain”, String(t).c_str());
});
server.on(„/humidity”, HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, „text/plain”, String(h).c_str());
});

// Start server
server.begin();
}

void loop(){
unsigned long currentMillis = millis();
if (currentMillis – previousMillis >= interval) {
// save the last time you updated the DHT values
previousMillis = currentMillis;
// Read temperature as Celsius (the default)
float newT = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
//float newT = dht.readTemperature(true);
// if temperature read failed, don’t change t value
if (isnan(newT)) {
Serial.println(„Failed to read from DHT sensor!”);
}
else {
t = newT;
Serial.println(t);
}
// Read Humidity
float newH = dht.readHumidity();
// if humidity read failed, don’t change h value
if (isnan(newH)) {
Serial.println(„Failed to read from DHT sensor!”);
}
else {
h = newH;
Serial.println(h);
}
}
}

//––––––––––––-

Atenție la declararea pinilor. Dacă copiați codul atenție la fonturi.

Pe serial veți afla IP-ul dat de server și dacă senzorul e ok.

serial

Serverul web pe care îl veți construi poate fi accesat cu orice dispozitiv care are un browser în rețeaua dvs. locală.

pagina

web-server-labeled

Succes!

Publicat la data

Mini cântar Arduino și senzorul de greutate de 1kg

Mini cântar Arduino și senzorul de greutate de 1kg

mini-cantar

Arduino Code :
Atenție la fonturi dacă copiați codul

//-----------------
#include "HX711.h"
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;
HX711 scale;

#include <LiquidCrystal.h>
const int rs = A0, en = A1, d4 = A2, d5 = A3, d6 = A4, d7 = A5;
LiquidCrystal lcd(A0, A1, A2, A3, A4 ,A5);

void setup()
{
  lcd.begin(16, 2);
  Serial.begin(9600);
  delay(100);

  Serial.println("Weight ");
  Serial.println("Measuring...");
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
  scale.set_scale(2280.f);
  scale.tare();
  
  lcd.print("Insert Weight");
  delay(100);
  lcd.clear();
 }

void loop()
{
  Serial.print("one reading:\t");
  Serial.print(scale.get_units(), 1);
  Serial.print("\t| average:\t");
  Serial.println(scale.get_units(10), 1);
  scale.power_down();      
  delay(100);
  scale.power_up();

  lcd.print("Weight :");
  delay(100);
  lcd.clear();
  delay(1);
  
  lcd.print(scale.get_units());    
  lcd.print("g");
  delay(100);
  lcd.clear();
  delay(1);
}
//-----------------
Publicat la data

Home Automation Arduino Project – Mici automatizări acasă

Home Automation Arduino Project

Mici automatizări acasă

Componente:

Arduino UNO
Modul Bluetooth HC-05
Modul 4 relee Arduino la 5v
Fire Dupont

a1

a2

Codul:

//–––––––––––––––

String voice;

#define relay1 2 //Connect relay1 to pin 2

#define relay2 3 //Connect relay2 to pin 3

#define relay3 7 //Connect relay1 to pin 2

#define relay4 8 //Connect relay2 to pin 3

void setup()

{

Serial.begin(9600); //Set rate for communicating with phone

pinMode(relay1, OUTPUT); //Set relay1 as an output

pinMode(relay2, OUTPUT);

pinMode(relay3, OUTPUT); //Set relay2 as an output

pinMode(relay4, OUTPUT);

digitalWrite(relay1, LOW); //Switch relay1 off

digitalWrite(relay2, LOW); //Swtich relay2 off

digitalWrite(relay3, LOW); //Switch relay1 off

digitalWrite(relay4, LOW); //Swtich relay2 off

}

void loop()

{

while(Serial.available()) //Check if there are available bytes to read

{

delay(10); //Delay to make it stable

char c = Serial.read(); //Conduct a serial read

if (c == ‘#’){

break; //Stop the loop once # is detected after a word

}

voice += c; //Means voice = voice + c

}

if (voice.length() >0)

{

Serial.println(voice);

if(voice == „*switch on”){

switchon();

}

else if(voice == „*switch off”){

switchoff();

}

else if(voice == „*bulb1 on”){

digitalWrite(relay1, LOW);

}

else if(voice == „*bulb1 off”){

digitalWrite(relay1, HIGH);

}

else if(voice == „*bulb2 on”){

digitalWrite(relay2, LOW);

}

else if(voice == „*bulb2 off”){

digitalWrite(relay2, HIGH);

}

else if(voice == „*fan1 on”){

digitalWrite(relay3, LOW);

}

else if(voice == „*fan1 off”){

digitalWrite(relay3, HIGH);

}

else if(voice == „*fan2 on”){

digitalWrite(relay4, LOW);

}

else if(voice == „*fan2 off”){

digitalWrite(relay4, HIGH);

}

voice=””;

}

}

void switchon() //Function for turning on relays

{

digitalWrite(relay1, LOW);

digitalWrite(relay2, LOW);

digitalWrite(relay3, LOW);

digitalWrite(relay4, LOW);

}

void switchoff() //Function for turning on relays

{

digitalWrite(relay1, HIGH);

digitalWrite(relay2, HIGH);

digitalWrite(relay3, HIGH);

digitalWrite(relay4, HIGH);

}

//–––––––––––––––

Pentru aplicația de telefon găsiți pe Google Play multe gratis, sau o puteți face simplu urmărind tutorialele de la :

App Diagram:

https://appinventor.mit.edu/

Succes!
Publicat la data

Controlul unui motor DC cu Arduino și 4 MOSFET

Controlul unui motor DC cu Arduino și 4 MOSFET

controlul-motordc-arduino-4mosfet-sch

Componente necesare :
4 MOSFET se alg in functie de curentul si tensiunea MOTORULUI DC
2 tranzistoare NPN (min 60v si 200mA)
2 tranzistoare PNP (min 60v si 200mA)
4 diode 100v 1A
4 rezistor 10k
4 rezistor 2k2

Descrierea funcționării :
In repaus pini sunt LOU
Când setați un pinul 1 HIGH cu microcontrolerul, tranzistorul Q7 NPN se comuta ON. Aceasta conectează baza tranzistorului Q5 de la GND la +12v astfel mosfeturile Q1 și Q4 conectează motorul la +12v și la GND. Pinul 2 HIGH conectează motorul la pozitiv și la GND în polaritatea opusă. Cele patru diode vă protejează tranzistorii împotriva supratensiunilor de tensiune care apar uneori atunci când un motor cu curent continuu este oprit brusc. Rezistențele de 10Kohm pun bazele tranzistoarelor la GND atunci când pinul de I/O trece pe LOU, iar rezistențele de 2200 ohm limitează curentul din pinii I/O pentru ai proteja.

controlul-motordc-arduino-4mosfet-activcontrolul-motordc-arduino-4mosfetmosfettranzistor

Publicat la data

Cum se utilizează Arduino GSM Shield SIM900

Cum se utilizează Arduino GSM Shield SIM900

Arduino GSM Shield SIM900

61ghxz8k5-l-_sl1001_6105emsgh7l-_sl1001_

Modulul poate fi alimentat de una din două moduri:

1. Sursă de alimentare separată.
2. De la Arduino.

Puteți alege sursa de alimentare de la comutatorul DIP de lângă Antenă.

De obicei, modulul are priza proprie. Așadar, îl puteți alimenta de la o sursă de alimentare separată de aproximativ 12V / 1A sau 5V / 2A.

Aceasta pentru puterea maximă sau puterea maximă de intrare pentru modul la efectuarea apelurilor.

Dar, de asemenea, puteți alimenta modulul direct de la Arduino ca pe orice alt shield. Acest lucru va face ca Vcc și GND ale modulului să fie conectate la Vcc și GND de la placa Arduino, dar acesta alimentat la +5v și 2A (acest lucru nu prea este recomandat, deoarece acest modul necesită o putere mare în modul transmisie).

Notă : Când alimentați modulul de la o sursă de alimentare externă, Arduino nu poate fi alimentat din modul. Deci, aveți nevoie și de o sursă de alimentare separată pentru Arduino.

fnfy5s3jzd6t4nh-large

Puteți porni și opri modulul apăsând butonul POWER pentru o secundă.
Puteți face acest lucru cu ușurință de fiecare dată când trebuie să vă utilizați modulul.

Dar dacă doriți ca modulul dvs. să funcționeze mereu, trebuie să porniți automat modulul folosind funcția Software Power ON.

Aveți nevoie doar de trei lucruri pentru a utiliza această caracteristică:

1- Trebuie uniți pinii JP Jumper de pe modul. Acest jumper activează caracteristica din hardware-ul modulului.
2- Trebuie să conectați Arduino PIN 9 la PIN 9 pe modul și acest PIN va fi dedicat exclusiv acestui scop.
3- Trebuie să rulați fragmentul de cod care alimentează modulul. Acest cod simulează de obicei apăsarea butonului Power pentru o secundă.

digitalWrite(9,HIGH);

delay(1000);

digitalWrite(9,LOW);

delay(5000);

Puteți comunica și controla SIM900 GSM Module folosind comenzi AT folosind funcții Serial() sau SoftSerial().
Există atât de multe comenzi utile AT pe care le puteți utiliza în mod obișnuit.

De exemplu:

– Answer incoming call : GPRS.println(„ATA;”);

– Hang up a call : GPRS.println(„ATH;”);

Descărcați : SIM900_AT_Command_Manual_V1.03.pdf

Receiving a Call

void ListenToCall()
{
// Display any text that the
shield sends out on the serial monitor
if(GPRS.available() >0) {
// Get the character from the cellular serial port
// With an incomming call, a „RING” message is sent out
incoming_char=GPRS.read();
// Check if the shield is sending a „RING” message
if (incoming_char==’R’) {
delay(10);
Serial.print(incoming_char);
incoming_char=GPRS.read();
if (incoming_char ==’I’) {
delay(10);
Serial.print(incoming_char);
incoming_char=GPRS.read();
if (incoming_char==’N’) {
delay(10);
Serial.print(incoming_char);
incoming_char=GPRS.read();
if (incoming_char==’G’) {
delay(10);

Serial.print(incoming_char);
// If the message received from the shield is RING

Called = Called + 1 ;

delay (1000);

}
}
}
}
}
}

 

Making a Call

void Call_PhoneNumber()

{ GPRS.println(„ATD + xxxxxxxxxx;”);

delay(1000);

}

 

Alimentarea Arduino UNO

Așadar, puteți alimenta modulul GSM de la o sursă de alimentare de 12 V, dar trebuie să vă alimentați placa Arduino sau microcontrollerul principal.
În acest caz, este posibil să aveți nevoie de o alimentare suplimentară de 5V.
Asta înseamnă că poate furniza Arduino sau Microcontroller atât timp cât este conectat la sursa de alimentare.

YouTube : How to Use Arduino GSM Shield SIM900

sau

instructables.com