mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Max 6675 SPI Temperatur auslesen


Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche (leider vergeblich) Temperaturen über den SPI Sensor "Max 
6675" auszulesen. Ich finde den Fehler einfach nicht, beim Auslesen via 
seriellen Monitor (Arduino) wird immer nur "0.00" ausgegeben, warum auch 
immer.

A1= CLK
A2=CS
A3=DO
A4=VCC
A5=GND

Hier mein Code:
#include "stdlib.h"
#include "util/delay.h"
int v = 0;
float Ctemp;


void setup(void) {
  Serial.begin(9600);
  while (!Serial);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  pinMode(A3, INPUT);
  pinMode(A4, OUTPUT);
  pinMode(A5, OUTPUT);
  digitalWrite(A2, HIGH);
  digitalWrite(A1, LOW);
  digitalWrite(A4, HIGH);
  digitalWrite(A5, LOW);
}

void loop(void) {
  delay(500);
  v = spiRead();
  if (v == -1) {
    Serial.println ("Sensor fehlt");
  }
  else {
    Ctemp = v * 0, 25;
    Serial.println(Ctemp);

  }
}

int16_t spiRead(void) {
  int16_t value = 0;
  int8_t i;
  digitalWrite(A2, LOW);
  delayMicroseconds(1);
  digitalWrite(A1, HIGH);

  delayMicroseconds(1);
  digitalWrite(A1, LOW);

  for (i = 14; i >= 0; i--) {
    digitalWrite(A1, HIGH);

    delayMicroseconds(1);
    value += digitalRead(A3) << i;

    digitalWrite(A1, LOW);
    delayMicroseconds(1);
  }
  digitalWrite(A2, HIGH);
  delayMicroseconds(1);
  if ((value & 0x04) == 0x04) return -1;

  return value >> 3;
}

Ich hoffe, dass ihr mir weiterhelfen könnt, auch das Erhöhen der Delays, 
führte nicht zum Erfolg.

Gruß,

David

Autor: mr. mo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das zum Üben oder warum benutzt du nicht SPI? Ansonsten wäre noch 
ein Logic-Analyzer hilfreich.

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das ist zum Üben gedacht.

Ein Logic-Analyzer wurde bereits benutzt, der Eingang A3 (DO) gibt 
nichts zurück. (Warum?)
Die beiden Ausgänge CLK und CS erfüllen ihre Aufgabe wie vom Max6675 
Datenblatt gefordert.

Autor: Johannes S. (jojos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
steht das wirklich so im Programm: Ctemp = v * 0, 25;
besser wäre: Ctemp = v * 0.25f;

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist ja, er gibt (laut Logic Analyzer) an A3 (DO) nur 0en 
aus.

Autor: mr. mo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
David schrieb:
> Die beiden Ausgänge CLK und CS erfüllen ihre Aufgabe wie vom Max6675
> Datenblatt gefordert.

Dann sollte der Chip aber nach 16 Takten auf CLK irgendwas rausgetaktet 
haben. Hast du ein Screenshot vom LA? Schaltplan evtl. Foto vom Aufbau?

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mr. mo schrieb:
> David schrieb:
>> Die beiden Ausgänge CLK und CS erfüllen ihre Aufgabe wie vom Max6675
>> Datenblatt gefordert.
>
> Dann sollte der Chip aber nach 16 Takten auf CLK irgendwas rausgetaktet
> haben. Hast du ein Screenshot vom LA? Schaltplan evtl. Foto vom Aufbau?

Mit einer bereits fertigen Bibliothek hat es funktioniert/funktioniert 
es. Aufbau Fehler und Hardware Versagen kann ausgeschlossen werden.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
David schrieb:
> A4=VCC
> A5=GND

Das ist nicht ernst gemeint, oder?

Was haben VCC bzw. Gnd an A4 bzw. A5 zu suchen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.