INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino
14.05.2016, 12:53 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2016 23:42 von Bitklopfer.)
Beitrag #1
Arduino
Hallo, ich kenne mich nicht so gut mit dem Arduinosprogramm aus und habe mal
versucht das hinzukriegen, hat bei vielen versuchen nicht geklappt.
Also in der Aufgabe steht, dass mit Hilfe der Arduino-Uno ein
Spannungsmessgerät zu entwickeln, welches mit einem LCD16X2 ausgestattet
ist.
Folgende Spannungsbereiche sind zu messen CH0:0......5V
CH1:0......50V

Beim Umschalten der Messbereiche erfolgt mit einem Taster und jeder
Messbereich ist mit einer roten Leuchtdiode auszustatten, die blinkt,
wenn der Messbereich überschritten wird.
Ich werde richtig Dankbar, wenn jemand mir dabei hilft.
Hier ein Blick was ich programmiert habe.
Ich hätte gerne Tipps, wie ich am besten das auslösen kann oder Internetseiten, die mir helfen könnten.
Hier einen Blick für das Programm,was ich geschrieben habe.
Danke.


Code:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


  int analogInput = 1;
  float vout = 0.0;
  float CH1 = 0.0;
  float R1 = 900
#include <LiquidCrystal.h>0.0;    
  float R2 = 1000.0;  
int value = 0;
  
  int SensorValue= 0;
  float temp=0;  
  float CH0 =0.0 ;
  float sensorValue = 0;
  float show = 0;    
  

void setup(){
  
  pinMode(analogInput, INPUT);
  Serial.begin (9600);
    lcd.begin(16, 2);
    lcd.print("CH1=");
pinMode(sensorValue, INPUT);
  lcd.begin(16, 2);
  lcd.print("CH1=");

{

void loop(){
  
  value = analogRead(analogInput);
  vout = (value * 5.0) / 1024.0;
  CH1 = vout / (R2/(R1+R2));  
  lcd.setCursor(4, 0);
  lcd.print(CH1);
  lcd.print("V");
  lcd.setCursor(0, 2);


sensorValue = analogRead(CH0);
show=0.0048828125*sensorValue;
lcd.setCursor(0,2);
lcd.print("CH0=");
lcd.setCursor(4, 1);
lcd.print(show);

lcd.print("V");

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2016, 13:08
Beitrag #2
RE: Arduino
Hi doni,
was genau soll dein Sketch machen bzw. was für ein Fehler hast du?

Da du keine Zeile dokumentiert hast, ist das schwer zu lesen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2016, 20:33
Beitrag #3
RE: Arduino
[quote='hotsystems' pid='29550' dateline='1463227731']
Hi doni,
was genau soll dein Sketch machen bzw. was für ein Fehler hast du?
Folgende Spannungsbereiche sind zu messen CH0:0......5V
CH1:0......50V

Beim Umschalten der Messbereiche erfolgt mit einem Taster und jeder
Messbereich ist mit einer roten Leuchtdiode auszustatten, die blinkt,
wenn der Messbereich überschritten wird.
Am Display wird nur die CH0=0.....5V (mit Poti eingestellt) und CH1=0......50V), auch mit Poti.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2016, 20:51 (Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2016 21:07 von hotsystems.)
Beitrag #4
RE: Arduino
Ok und das funktioniert auch, prima.
Du schreibst nichts von einem Problem..

Achja und Tipps, wie du Taster einbaust, um den Messbereich umzuschalten, findest du in den Basics der IDE.

Aber grundsätzlich solltest du deinen Sketch nochmal ansehen, da ist noch einiges durcheinander.
Die Deklaration des LCD erfolgt erst nach dem "#include".

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2016, 21:08
Beitrag #5
RE: Arduino
(14.05.2016 20:51)hotsystems schrieb:  Ok und das funktioniert auch, prima.
Du schreibst nichts von einem Problem..

ja schon,aber nicht mit dem Angaben,die vorgegeben sind.
ich konnte nicht die Channel mit Taster bedienen und überschritenen Wert des Chanels soll bei jeder Chanel eine Diode leuchten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2016, 21:15
Beitrag #6
RE: Arduino
(14.05.2016 21:08)doni schrieb:  ja schon,aber nicht mit dem Angaben,die vorgegeben sind.
ich konnte nicht die Channel mit Taster bedienen und überschritenen Wert des Chanels soll bei jeder Chanel eine Diode leuchten.

Klar, weil du keine Taster eingebaut hast.
Setze doch entsprechend der Beschreibung in den Basics die Taster ein, dann sehen wir weiter.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2016, 23:40
Beitrag #7
RE: Arduino
...und nicht vergessen den Eingang vom Arduino gegen Überspannung schützen. Mehr als 5V vertragen die Eingänge nicht. Also beim Eingang die Spannung per Z-Diode begrenzen wenn da mehr als 5V auftreten können....dazu ist dann außer dem Spannungsteiler beim 50V Bereich beim 5V Bereich ein Vorwiderstand notwendig.
zudem würde ich dann die Bereiche anders wählen um eine Z-Diode mit 4,7V verwenden zu können... also am Eingang sollten nicht mehr als 4,5V anstehen.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.05.2016, 17:53 (Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2016 22:22 von Bitklopfer.)
Beitrag #8
RE: Arduino
irgenwie klappt das bei mir nicht.
   
Code:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


  int analogInput = 1;
  float vout = 0.0;
  float CH1 = 0.0;
  float R1 = 9000.0;    
  float R2 = 1000.0;  
int value = 0;
  
  int SensorValue= 0;
  float temp=0;  
  float CH0 =0.0 ;
  float sensorValue = 0;
  float show = 0;    
  int taster=6;
  uint8_t taste,gedrueckt,kanal,zaehler;
  char text[10];
void setup(){
  
  pinMode(analogInput, INPUT);
  Serial.begin (9600);
    lcd.begin(16, 2);
    lcd.print("CH1=");
pinMode(sensorValue, INPUT);
  lcd.begin(16, 2);
  lcd.print("CH1=");
pinMode(taster,INPUT);
gedrueckt=digitalWrite(taster);
kanal=zaehler=0;
strcpy(text,"CHn=0.000");
}


void loop(){
  
  value = analogRead(analogInput);
  vout = (value * 5.0) / 1024.0;
  CH1 = vout / (R2/(R1+R2));  
  lcd.setCursor(4, 0);
  lcd.print(CH1);
  lcd.print("V");
  lcd.setCursor(0, 2);

  

  
sensorValue = analogRead(CH0);
show=0.0048828125*sensorValue;
lcd.setCursor(0,2);
lcd.print("CH0=");
lcd.setCursor(4, 1);
lcd.print(show);
  
lcd.print("V");
  taste=digitalRead(taster);
  if taster=1 taste=digitalRead("CH0=");
  else
  taster=1 taste=digitalRead("CH1");
  
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 1.113 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 3.143 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste