Recent Posts

Pages: [1] 2 3 ... 10
1
There doesn't appear to be anything wrong with the code you've posted. Something may be happening in your_external_function or elsewhere that we cannot see, so who knows.
2
Deutsch / Display Darstellungsfehler
Last post by Vergil820 - Today at 03:27 pm
Hallo alle miteinander,
ich bin aktuell am programmieren eines kleinen Panels für meine Hobbyheizungssteuerung, welches nur 2 Aufgaben hat.
1. Anzeigen von 2 Temperaturen (Zeile 1 & 2) von 2 Sensoren.
2. Anzeige des Modus in dem sich die externe Steuerung befindet (Zeile 4).

Die Eingangssignale werden von Relais geschaltet und sind mit einem Pull-down Widerstand versehen, wodurch die Signal klar ankommen.
Ansich funktioniert alles. Alle Temperaturen werden gut angezeigt und die Modi werden auch gut dargestellt.

Mein Problem ist aber das nach einiger Zeit die Modianzeige (Zeile 4) einfriert, obwohl Eingangssignal sich ändern und das zufällig Nullen, auf dem gesamten Display, auftauchen und verschwinden. Manchmal Verschwinden auch die "C" bei den Grad Celsius hinter der Temperatur. Bislang konnte ich noch kein Muster hinter den Fehlern sehen.

Habe leider keine Bider von dem Bug, kann zurzeit auch keine Machen da ich auf Montage bin.

Hat jemand eine Idee woran das liegen könnte?



Code: [Select]

/*
   Display Test
*/

// Werte
//-----------------------------------------------------

const int Refreshrate = 500;  //Temperatursensoren Wiederholungsrate

//Eingangssignale
//-----------------------------------------------------

const int I1 = 3; //Modus Anheizen
const int I2 = 4; //Modus Normalmodus
const int I3 = 5; //Modus Herunterfahren
const int I4 = 6; //Nachgelegt
const int I5 = 7; //Uebertemperatur


// Tasterzustände
//-----------------------------------------------------

int I1State = 0;
int I2State = 0;
int I3State = 0;
int I4State = 0;
int I5State = 0;

//Temperatursensoren
//-----------------------------------------------------

float BT1Temp;
float BT2Temp;
int floatlength = 2; //Nachkommastellen

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS_PIN 2

#define TEMPERATURE_PRECISION 9

OneWire oneWire(ONE_WIRE_BUS_PIN);

DallasTemperature sensors(&oneWire);

unsigned long vorher, jetzt;

DeviceAddress BT1 = { 0x28, 0xC2, 0x21, 0x60, 0x05, 0x00, 0x00, 0x7F };
DeviceAddress BT2 = { 0x28, 0xE3, 0xE2, 0x60, 0x05, 0x00, 0x00, 0x92 };


// LCD Display
//-----------------------------------------------------

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Start the LCD display library
LiquidCrystal_I2C  lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

// Belegung für 16x4 LCD-Modul QC2204A
// mit Sainsmart LCD2004 I2C-Controller


void setup() {

  pinMode(I1, INPUT);
  pinMode(I2, INPUT);
  pinMode(I3, INPUT);
  pinMode(I4, INPUT);
  pinMode(I5, INPUT);

  Serial.begin(9600);


  // Starte Temperatursensor
  //------------------------------------------------------------------

  sensors.begin();

  lcd.begin(20, 4);
  lcd.setCursor(1, 1);
  lcd.print("Heizungssteuerung");
  lcd.setCursor(3, 2);
  lcd.print("wird geladen..");
  delay(11000);
  lcd.clear();

}

void loop() {

  I1State = digitalRead(I1);
  I2State = digitalRead(I2);
  I3State = digitalRead(I3);
  I4State = digitalRead(I4);
  I5State = digitalRead(I5);
  unsigned long currentMillis = millis();

  lcd.home();

  sensors.requestTemperatures();


  //Temparutersensoren DS18B20
  //--------------------------------------------------------------

  jetzt = millis();
  if (jetzt - vorher > Refreshrate) { //Sensoren werden nur alle 10 sec gelesen
    sensors.requestTemperatures();
    BT1Temp = sensors.getTempC(BT1);
    BT2Temp = sensors.getTempC(BT2);
    vorher = millis();
  }

  lcd.setCursor(0, 0);
  lcd.print("Vorlauf:");
  lcd.setCursor(0, 1);
  lcd.print("Puffer:");


  // Temperaturen
  //-----------------------------------------------------
  lcd.setCursor(14, 0);
  lcd.print("   ");
  lcd.setCursor(14, 0);
  lcd.print(BT1Temp);
  lcd.setCursor(14, 1);
  lcd.print("   ");
  lcd.setCursor(14, 1);
  lcd.print(BT2Temp);


  // "°C" Symbole
  //-----------------------------------------------------

  lcd.setCursor(18, 0);
  lcd.write(0xDF);
  lcd.setCursor(18, 1);
  lcd.write(0xDF);
  lcd.setCursor(19, 0);
  lcd.print("C");
  lcd.setCursor(19, 1);
  lcd.print("C");


  // Modus
  //-----------------------------------------------------

  if (I1State == 1) {
    lcd.setCursor(0, 3);
    lcd.print("Anheizen           ");
  }

  if (I2State == 1) {
    lcd.setCursor(0, 3);
    lcd.print("Normal             ");
  }

  if (I4State == 1) {
    lcd.setCursor(0, 3);
    lcd.print("    !Nachlegen!   ");
  }

  if (I3State == 1) {
    lcd.setCursor(0, 3);
    lcd.print("Herunterfahren     ");
  }

  if ((I1State == 0) && (I2State == 0) && (I3State == 0) && (I4State == 0) && (I5State == 0)) {
    lcd.setCursor(0, 3);
    lcd.print("Kein Modus     ");
  }

  if (I5State == 1) {
    lcd.setCursor(0, 3);
    lcd.print("Uebertemperatur");
  }


}

3
Audio / Re: Voice recorder: can't crea...
Last post by Hillcres-Hellio - Today at 03:26 pm
Hi MarkT,

I'm not sure being clear with the terms: When you say "across" the supply of the SD reader, it means between 3.3V and Ground?

And "in line" means on the 3.3V line wich goes into the mic right?

Otherwise, great news: i made it work once with my arduino UNO. I changed some wires and re-started everything at the beggining, on a breadboard (before, everything was soldered)

But now i try to make it work on a Feather from adafruit and the same old problem comes again, idk why...

Azeez, if you're hearing me, try to do like i did, and also to use two different breadboards for the mic and the sd card reader. It might be a dumb problem like this.
4
I used another Arduino and paired them with I2C by that I can use the Slave Arduino to drive the servos and that works pretty good.
That's like hoping that mophine will cure a broken leg :)

...R
5
Français / BME280 température fantaisiste
Last post by dudule63 - Today at 03:25 pm
Bonjour à tous,

J'ai installé une BME280 sur un nano, la sonde me renvoie 27 degrés quand il en fait 19 et elle m'affiche la pression sous cette forme 95155.62. il y a une possibilité pour déplacer le point pour avoir 951.5562 ?
d'avance, merci.
Code: [Select]
/******************************************************************************
I2C_and_SPI_Multisensor.ino
BME280 Arduino and Teensy example

******************************************************************************/

#include <stdint.h>
#include "SparkFunBME280.h"
#include "Wire.h"
#include "SPI.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


//Global sensor object
BME280 mySensorA; //appellation pour le prog du cateur n°1
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

void setup()
{





//***Set up sensor 'B'******************************//

//specify chipSelectPin using arduino pin names
//specify I2C address.  Can be 0x77(default) or 0x76
//Indiquer si le cablage de la sonde "mySensorA est en I2C_MODE ou en SPI_MODE
mySensorA.settings.commInterface = SPI_MODE;
  // si elle est en SPI_MODE on récupère les données sur le pin N°10
mySensorA.settings.chipSelectPin = 10;
// si le cablage de la sonde "mySensorA est en I2C_MODE utiliser cette partie et invalider le spi_mode
  //mySensor.settings.commInterface = I2C_MODE;
  //mySensor.settings.I2CAddress = 0x76;
mySensorA.settings.runMode = 3; //  3, Normal mode
mySensorA.settings.tStandby = 0; //  0, 0.5ms
mySensorA.settings.filter = 0; //  0, filter off
//tempOverSample can be:
//  0, skipped
//  1 through 5, oversampling *1, *2, *4, *8, *16 respectively
mySensorA.settings.tempOverSample = 1;
//pressOverSample can be:
//  0, skipped
//  1 through 5, oversampling *1, *2, *4, *8, *16 respectively
    mySensorA.settings.pressOverSample = 8;
//humidOverSample can be:
//  0, skipped
//  1 through 5, oversampling *1, *2, *4, *8, *16 respectively
mySensorA.settings.humidOverSample = 1;



//***Initialize the things**************************//
Serial.begin(9600);
Serial.print("Program Started\n");
Serial.println("Starting BME280s... result of .begin():");
delay(10);  //Make sure sensor had enough time to turn on. BME280 requires 2ms to start up.
//Calling .begin() causes the settings to be loaded


Serial.print("Sensor A: 0x");
Serial.println(mySensorA.begin(), HEX);

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialise l'écran à l'adreese  I2C addr 0x3C (pour le 128x32)
}

void loop()
{
// affichage sur l'écran
  // Clear the buffer.
 display.clearDisplay();
 
 // text display tests
 display.setTextSize(1);
 display.setTextColor(WHITE);
 
 display.setCursor(0,0); //position du texte sur l'afficheur
 display.print("Temperature: ");  //texte qui s'affiche tel quel avant la variable
 display.print(mySensorA.readTempC(), 2); //affichage de la variable température
 display.print(" c"); //texte qui s'affiche tel quel apres la variable
 
 display.setCursor(0,8);
 display.print("Pression: ");
 display.print(mySensorA.readFloatPressure(), 2);
 
 display.setCursor(0,16);
 display.print("Altitude: ");
 display.print(mySensorA.readFloatAltitudeMeters(), 2);
 display.print(" m");
 
  display.setCursor(0,25);
 display.print("humidite: ");
 display.print(mySensorA.readFloatHumidity(), 2);
 display.print(" %");
 display.display();

 //fin d'affichage sur l'écran
 // début affichage sur le monitor série
Serial.print("Temperature: "); //ce qui s'affiche tel quel
Serial.print(mySensorA.readTempC(), 2); // valeur en sortie de sonde bme280
Serial.println(" degrees C"); //ce qui s'affiche tel quel


Serial.print("pression: ");
Serial.print(mySensorA.readFloatPressure(), 2);
Serial.println(" Pa");


Serial.print("humidite: ");
Serial.print(mySensorA.readFloatHumidity(), 2);
Serial.println(" %");

 
 Serial.print("Altitude: ");
 Serial.print(mySensorA.readFloatAltitudeMeters(), 2);
 Serial.println("m");

Serial.println();
// fin d'affichage sur le monitor série
delay(1000);

}
6
Software / Re: Problema Contatore puntegg...
Last post by edstarink - Today at 03:25 pm
lo so, per questo ti dicevo che ho problemi in C
Purtroppo non ho mai fatto programmazione, ho solo studiato da qualche libro e imparato dai tutorial, ma il mio problema è che mi dedico allo studio saltuariamente; Ho un canale Youtube molto attivo che mi porta via tutto, e dico tutto il mio tempo libero tanto che, da appassionato di cinema, non riesco più a vedere un film. Il problema è che non faccio spesso uso di arduino nei miei progetti e quando ne propongo uno, perdo tutto quello che ho appreso per fare quello precedente. Lo ammetto, ho difficoltà con le funzioni nel senso che non capisco quando utilizzarle anche se riconosco la loro utilità ma c'è un meccanismo che non riesco a farmi entrare in testa. Tu mi hai fatto un codice, e poi mi hai inserito un link con un' altro codice, ma metterli insieme per te sarà semplicissimo e troverai assurdo che non lo sia anche per, ma ti assicuro che ho alcune lacune. Imparare il C a quarant' anni, con un lavoro e un dopolavoro non è facile, anche se ci sto provando. Aiutami tu, dammi dei link su qualche tutorial riguardo alle funzioni, cerco di farmele entrare in testa :-)
7
Deutsch / Re: Neuling versteht Arduino-S...
Last post by DrDiettrich - Today at 03:23 pm
Erstmal: Code immer in Code Tags </> posten, sonst gehen wesentliche Teile verloren (siehe oben).

Was der Code tun soll, kann ich Dir auch nicht sagen, IMO tut sich da überhaupt nichts. Wenn Du nichts sinnvolleres findest, wirst Du wohl alles selbst neu schreiben müssen.

Gleich mit DC Motoren zur Steuerung eines Robots anzufangen, das ist schon sehr sportlich. Ich würde eher mit einem kompletten Bausatz anfangen, der alles enthält bis hin zur Software. Hast Du schon einmal versucht, einen DC Motor in einer bestimmten Stellung anzuhalten? Falls nicht, dürfte das Dich die nächsten Wochen beschäftigen :-]

Was Serial.write(',') bedeuten soll, das steht im Empfänger Sketch.
8
That does not seem to be the compete program. Please post the complete program as the problem is often in the part you are not looking at.

...R
9
Hardware / Re: Problema con movimiento de...
Last post by _jose_ - Today at 03:21 pm
Por favor crea un nuevo post de acuerdo a las normas del foro que deberias leer.
10
Software / Re: Arduino + ar1010 + wprogra...
Last post by surbyte - Today at 03:21 pm
Podrias colaborar un poco mas informando debidamente

1. enlace de la librería
2. código que no funciona.
3. Arduino e IDE que estas usando

Y si todo eso lo sacaste de algún sitio, indica el sitio.

El foro tiene normas y todo se postea usando etiquetas. Léelas y hazlo correctamente. Si no entiendes, mira otros hilos y será mas claro como proceder.
Pages: [1] 2 3 ... 10