si vous avez mal comprit quelques chose n'hésitez pas à me le dire
On a bien compris que vous n’avez pas pris le temps de lire comment utiliser le forum
(les posts épinglés en haut du forum comme « Bien éditer son post pour les nuls » , « Faire un Nouveau Sujet ou le corriger avec les Balises... » et « Règles du forum francophone »),
==> faites un post « propre » , vite... the clock is ticking
Bonjour,
Je suis débutant en Arduino et pour un projet, j'ai besoin d'utiliser des servomoteurs. J'ai donc utilisé l'extension SensorShield afin de pouvoir les connecter à la carte (UNO).
Cependant il faut que j'utilise également des photorésistances mais je n'ai aucune idée de comment je pourrais les connecter avec ma SensorShield, puisque les résistances seront sur une breadboard, et je ne sais pas comment connecter les 2, ni même si ça se fait.
Si quelqu'un pourrait m'éclaircir ![]()
salut
le diviseur circulaire ou universel est placer est fixer sur le plans de travail de la machine outils
qui est la table de la fraiseuse
le diviseur a comme fonction de diviser avec des disques perforer 360° avec un nombre définis
l usinage ce fait avec le déplacement de trois axes
un pour la hauteur l axe Z
un autres axes pour le réglage a la demande x qui est le déplacement de la table devant ou derrières
un autres axes pour l usinage y droite ou gauche
le rotary encodeur incrémental est a fixer sur l axe x ou y suivant la méthode de l usinage
j ai le montage qui fonctionne avec les branchement suivant
byte rowPINS[ROWS] = {11,10,9,8};
byte colPINS[COLS] = {7,6,5,4};
LiquidCrystal_I2C lcd(0x27,20,4)
const int stp = 12; //connect pin 12 to step
const int dir = 13; // connect pin 13 to dir
speed = analogRead(A0); pour controler la vitesse du moteur pas a pas
A1; axes X joystick A2; axes y joystick 2; Définition bouton centrale
le branchement de l encodeur que j ai fait ( outA A3, outB A4, outZ A5 )
a plus
Un projet scolaire seulement en anglais ??
Steclow2:
I'm actually in my second year of engineering
Tic tac tic tac.....
Allo, premièrement, j'ignore si j'ai utilisé la bonne manière de poster ma demande (est-ce au bon endroit?)
Voici la problématique: j'essaie d'inclure un son à une programmation à partir d'un DFPLAYER Mini à chaque fois qu'un bouton est pressé (3 boutons correspondant à 3 sons différents). J'aimerais avoir un "cue" sur la manière la plus efficace et fiable d'arriver à mes fins.
bonjour je suis en terminal STI2D option SIN , nous avons un projet de bac qui consiste a envoyer un message avec des coordonnées recuperer par un GPS lorsque le fauteil roulant est trop incliner ( pour signaler un chute) , les codes marchent bien séparément mais fusionner cela ne marche pas.
nous voulons donc les fusionner.
nous utilisons : - un "SIM 900" pour les sms
- un "GY-NE06MV2" comme GPS
merci de votre aide , bonne journee
code GPS :
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600; // definie les baud a 9600
// introduit tiny GPS ++
TinyGPSPlus gps;
// connection au peripherique GPS
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// des que la sequence d'avant est correctement etablie une phrase s'affiche
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("GPS non detecter , verfier le cablage ")); // si le GPS n'est pas detecter ecrit "virifier le cablage"
while(true);
}
}
void displayInfo() //ouvre le display pour ecrire les information ci dessous
{
Serial.print(F("Location: ")); // ecrit " localitation"
if (gps.location.isValid())
{
Serial.print(gps.location.lat(), 6); // ecrit la latitude
Serial.print(F(","));
Serial.print(gps.location.lng(), 6); // ecrit la longitude
}
else
{
Serial.print(F("INVALIDE")); // si cela ne marche pas ecrit "invalide"
}
Serial.println(); //ecrit le tous en boucle
}
code inclinometre + GPS :
#include <Wire.h> // Permet de communiquer avec les périphériques I2C (pour l'écran LCD)
#include <ADXL335.h> // Inclut la bibliothèque de l'accéléromètre
#include <rgb_lcd.h> // Inclut la bibliothèque de l'écran LCD
#include <SoftwareSerial.h>
rgb_lcd lcd;
SoftwareSerial SIM900(7, 8); // Configure software serial port
// Définit la luminosité de la couleur rouge, verte et bleue
const int colorR = 255;
const int colorG = 255;
const int colorB = 255;
// définit x, y et z sur les entrées analogique 2, 1 et 0
const int xPin = 2;
const int yPin = 1;
const int zPin = 0;
// Valeur minimale et maximale de l'accéléromètre immobile
int minVal = 265;
int maxVal = 402;
// Pour lire x, y et z jusqu'à 4 nombres après la virgule
double x;
double y;
double z;
// Valeur minimale et maximale de X et Y pour détecter la chute
int maxX = 50;
int maxY = 50;
int minX = -50;
int minY = -50;
int variable = 0; // Variable pour sms
void setup()
{
SIM900.begin(19200); // Arduino communicates with SIM900 GSM shield at a baud rate of 19200, make sure that corresponds to the baud rate of your module
delay(20000); // Give time to your GSM shield log on to network
sendSMS(); // Send the SMS
Serial.begin(9600); // Nombre de symboles transmissit par seconde
lcd.begin(16, 2); // Nombre de lignes et de colonnes sur l'écran LCD
lcd.setRGB(colorR, colorG, colorB); // Applique les luminosités définit précedemment
}
void sendSMS()
{
SIM900.print("AT+CMGF=1\r"); // AT command to set SIM900 to SMS mode
delay(100);
SIM900.println("AT + CMGS = "0659166691"");
delay(100);
SIM900.println("message via arduino");
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26
delay(100);
SIM900.println();
delay(5000); // Give module time to send SMS
}
void loop()
{
// Lit les valeurs analogiques de l'accéléromètre
int xRead = analogRead(xPin);
int yRead = analogRead(yPin);
int zRead = analogRead(zPin);
// Convertit les valeurs lues en degrés de -90 à 90 (pour atan2)
int xAng = map(xRead, minVal, maxVal, -90, 90);
int yAng = map(yRead, minVal, maxVal, -90, 90);
int zAng = map(zRead, minVal, maxVal, -90, 90);
// Calcule les 360 degrés avec atan2 (-yAng, -zAng), atan2 renvoie la valeur de -π à π (radians), ensuite on convertit les radians en degrés
x = RAD_TO_DEG * (atan2(-yAng, -zAng) + PI);
y = RAD_TO_DEG * (atan2(-xAng, -zAng) + PI);
// Calibrage suivant les valeurs de l'accéléromètre à plat
x = x - 185;
y = y - 184;
// Pour éviter les erreurs suite au calibrage
if (x < -180)
{
x = x + 360;
}
if (y < -180)
{
y = y + 360;
}
// Affichage des valeurs de x et y pour vérifier si l'accéléromètre fonctionne
lcd.setCursor(0,0);
lcd.print("x: ");
lcd.print(x);
lcd.setCursor(0,1);
lcd.print("y: ");
lcd.print(y);
delay(100); // Pour ralentir l'affichage (plus facile à lire)
if (((y < minY) || (y > maxY)) || ((x < minX) || (x > maxX))) // Conditions pour que la led s'allume
{
variable = variable + 1;
if (variable == 1)
{
sendSMS();
}
}
else
{
variable = 0;
}
}
Bonjour,
je crois savoir que le modérateur est impitoyable avec les codes non cernés par les balises (et que certaines séquences de code donnent des trucs bizarres, qu'on appelle smiley en franglais).
Vois relirez avec profit les 10 premières lignes de Bien editer son post pour les nuls - Français - Arduino Forum.
PS (Post Scriptum; sans contre façon) : la cruauté des moderateurs peut être accrue si les posts sont liés à un examen.
Allo,
Voici la problématique: j'essaie d'inclure un son à une programmation de séquence de puzzle electronique à partir d'un DFPLAYER Mini de sorte qu'à chaque fois qu'un bouton est pressé (3 boutons correspondant à 3 sons différents) un bruit retentit. J'aimerais avoir un "cue" sur la manière la plus efficace et fiable d'arriver à mes fins.
bonjours a tous,
j'aimerais utiliser un RCT pour pourvoir mesurer la masse et la température d'une ruche connecter.
j'utilise une carte arduino MKR FOX 1200.
j'aimais le relier a sigfox. J'ai trouver se programme mais impossible de le relier a sigfox ...
#include <RTCZero.h>
/ * Créer un objet rtc * /
RTCZero rtc ;
/ * Modifiez ces valeurs pour définir l'heure initiale actuelle * /
const byte seconds = 0 ; octet
constantminutes = 0 ; heures d' octet
const = 16 ; / * Modifiez ces valeurs pour définir la date initiale actuelle * / const byte day = 15 ; const octet mois = 6 ; const octet année = 15 ; void setup ( ) { Série . commencer ( 9600 ) ; rtc. commencer ( ) ; // initialise le RTC // règle l'heure
rtc. setHours ( hours ) ;
rtc. setMinutes ( minutes ) ;
rtc. setSeconds ( secondes ) ;
// Définit la date
rtc. setDay ( jour ) ;
rtc. setMonth ( mois ) ;
rtc. setYear ( année ) ;
// vous pouvez aussi utiliser
//rtc.setTime(heures, minutes, secondes);
//rtc.setDate(day, month, year);
}
void loop ( )
{
// Imprimer la date ...
print2digits ( rtc. GetDay ( ) ) ;
Série . print ( "/" ) ;
print2digits ( rtc. getMonth ( ) ) ;
Série . print ( "/" ) ;
print2digits ( rtc. getYear ( ) ) ;
Série . print ( "" ) ;
// ... et l'heure
print2digits ( rtc.getHours ( ) ) ;
Série . print ( ":" ) ;
print2digits ( rtc. getMinutes ( ) ) ;
Série . print ( ":" ) ;
print2digits ( rtc. getSeconds ( ) ) ;
Série . println ( ) ;
délai ( 1000 ) ;
}
void print2digits ( int number) {
if ( number < 10 ) {
Série . print ( "0" ) ; // affiche un 0 avant si le nombre est inférieur à 10
}
Série . imprimer ( nombre ) ;
}
Merci d'avance !
Code obligatoirement entre balises ---> Faire un Nouveau Sujet ou le corriger avec les Balises... - Français - Arduino Forum
Conseil : faire vite pour modifier le message pour obtenir des réponses et ne pas retrouver son message dans le Bar-> Bak-ka-poux-belle
Bonjour ,
j'ai un projet pour passer mon BAC et je suis un peu en retard , c'est un parking connecté, je vous explique.
J'ai un clavier 12 touche et l'utilisateur doit pouvoir programmé le nombre de place de parking et l'heure
donc je voudrais que quand on appui '#' dire qu'il veut modifier le nombre de place disponible , -> ensuite on entre 123 puis on valide le nombre de places avec '#'.
pareil pour l'heure et la date ,on appui sur '' entre jour puis mois puis année/heure/minutes/secondes et puis de nouveau ''
pour l'instant si je lance mon programme et que je fait '123' sur le clavier et '#' il m'affiche bien 123 mais je n'ai pas réussi a faire comme je voulait faire , et vu que il a d'autre variable a enregistré je suis obligé de faire sa. Help svp ![]()
#include <Keypad.h>
char Clavier[5];
int compteur = 0;
int valeur;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {7, 5, 3, 2};
byte colPins[COLS] = {4, 9, 8};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600);
Serial.println("OK");
}
void loop(){
char key = keypad.getKey();
if (key =='#')
if (key != NO_KEY)
{
Clavier[compteur++]= key;
Clavier[compteur]= '\0';
if (key == '#')
{
valeur= atoi(Clavier);
Serial.println(valeur);
compteur = 0;
}
}
}
Tu mets le contenu de ta loop dans une fonction qui prend en paramètre d'entrée le caractère spécial # ou * et renvoie en sortie la valeur numérique entrée au clavier. Et dans la loop tu écris ce qui doit être fait pour entrer les différentes valeurs, en appelant ta fonction avec le bon argument.
Est-ce clair ?
Non j'ai pas vraiment saisie désolé c'est la première fois que je fait de l'arduino , si tu peu me faire un exemple ou mettre le code avec explication sa serait très gentil ou juste un petit exemple
Il ne me manque plus que cette partie pour mon projet ![]()
UP!
Bonjours j'ai un projet de SIN a faire moi je doit m'occupé d'envoyer un message automatiquement quand l'utilisateur envoie UN #. Problème cela fonctionne quand cela veut.
J'utilise comme carte sim la poste. Tous les exemples du GSM fonctionne.
Le code:
#include <GSM.h>
#define PINNUMBER "0000"
#define NUMBER "0780540034"
GSM gsmAccess;
GSM_SMS sms;
char senderNumber[20];
void setup()
{
Serial.begin(9600);
while (!Serial) {
;
}
// connection state
boolean notConnected = true;
// Start GSM connection
while (notConnected)
{
if (gsmAccess.begin(PINNUMBER) == GSM_READY)
{
notConnected = false;
} else
{
Serial.println("Not connected");
delay(1000);
}
}
}
void loop() {
char remoteNum[20];
if (sms.available() > 0)
{
sms.remoteNumber(senderNumber, 20);
if (sms.peek() == '#')
{
sms.beginSMS(NUMBER);
sms.print("AZERTYU");
Serial.print("AZERTYU");
sms.endSMS();
sms.flush();
}
}
}
lisez comment utiliser le forum (les posts épinglés en haut du forum comme "Bien éditer son post pour les nuls" , "Faire un Nouveau Sujet ou le corriger avec les Balises..." et "Règles du forum francophone"), et faites un post "propre"
Bonjours je suis en classe T STI2D , j'ai un projet qui consiste a faire un compteur d'eau connecté, mon boulot et d'envoyer un message automatiquement quand l'utilisateurs aura envoyer #. Donc j'ai déja essayé tous les exemples du GSM cela fonctionne , mais mon code a moi de fonctionne pas.
Matériel: Ordi, Carte Arduino avec un GSM Sield M10 , Une carte SIM La Poste.
Merci de bien vouloir m'aider
#include <GSM.h>
#define PINNUMBER "0000"
#define NUMBER "0780540034"
GSM gsmAccess;
GSM_SMS sms;
char senderNumber[20];
void setup()
{
Serial.begin(9600);
while (!Serial) {
;
}
// connection state
boolean notConnected = true;
// Start GSM connection
while (notConnected)
{
if (gsmAccess.begin(PINNUMBER) == GSM_READY)
{
notConnected = false;
} else
{
Serial.println("Not connected");
delay(1000);
}
}
}
void loop() {
char remoteNum[20];
if (sms.available() > 0)
{
sms.remoteNumber(senderNumber, 20);
if (sms.peek() == '#')
{
sms.beginSMS(NUMBER);
sms.print("AZERTYU");
Serial.print("AZERTYU");
sms.endSMS();
sms.flush();
}
}
}
"faire UN message propre" veut dire "Corriger celui qui ne l'est pas" mais pas en faire un second !
Les messages multiples pas autorisés
Merci de ne pas en faire un troisième pour remplacer le "Shiled' du titre pas 'Shield' !!!