Show Posts
Pages: [1]
1  International / Deutsch / Re: Motorsteuerung mit L293 on: January 26, 2013, 10:31:52 am
Dass man nicht verbundene Pins erden soll wusste ich noch nicht, danke. Wie steuert man jetzt eigentlich die Geschwindigkeit des Motors (bisher mache ich das über pwm an 4A)? Etwa über 3A, solange 4A low ist?
2  International / Deutsch / Motorsteuerung mit L293 on: January 25, 2013, 02:09:37 pm
Hallo,
ich möchte einen DC-Motor per L293D/arduino steuern. Das klappt soweit auch, bis auf den Rückwärtsgang! Ich habe die Motorsteuerung folgendermaßen angeschlossen:

Code:
+5V   -1  16- +5V
NC    -     - Arduino Pin 10
NC    -     - Motor +
Gnd   -     - Gnd
Gnd   -     - Gnd
NC    -     - Motor -
NC    -     - Arduino Pin 11
+9V   -8   9- +5V

Ich dachte,dass wenn ich den Pin 10 auf LOW setze, der Motor andersherum dreht, stattdessen dreht er aber nur wenn Pin 10 HIGH ist, ansonsten bleibt er stehen. Gehört das so, oder muss hab ich was falsch angeschlossen?

Danke im Voraus für Antworten smiley-grin
3  International / Deutsch / Re: arduino als programmer für atmega8 on: January 25, 2013, 01:53:38 pm
um das ganze mal abzuschließen (und falls jemand dasselbe Problem hat smiley-grin): Ich habs mir leicht gemacht und mir nen avrisp gekauft - mit dem klappt es ohne Weiteres, den Bootloader auf den Atmega zu flashen.
4  International / Deutsch / Re: arduino als programmer für atmega8 on: December 22, 2012, 12:03:22 pm
danke für die antwort, aber was sollte da sein? ich kann ja nicht auf den com8 mit avrdude zugreifen, solange der serial monitor das tut... da kommt zwangsweise die meldung
Code:
avrdude.exe: ser_open(): can't open device "\\.\COM8": Zugriff verweigert
5  International / Deutsch / Re: arduino als programmer für atmega8 on: December 22, 2012, 09:32:48 am
habe ich mal ausprobiert - gleiche fehlermeldung. muss ich einen anderen parameter bei -c angeben, wenn ich arduino als isp angebe?
6  International / Deutsch / Re: arduino als programmer für atmega8 on: December 22, 2012, 08:51:46 am
keiner eine idee?
7  International / Deutsch / Re: arduino als programmer für atmega8 on: December 21, 2012, 03:35:27 pm
yep, hab ich. der arduino müsste auch noch intakt sein, blink funktioniert noch^^

EDIT: beim hochladen vom isp sketch bekomme ich übrigens folgende warnungen:
Code:
ArduinoISP.ino: In function 'void universal()':
ArduinoISP.ino:279: warning: unused variable 'w'
ArduinoISP.ino: In function 'int avrisp()':
ArduinoISP.ino:551: warning: no return statement in function returning non-void
ArduinoISP.ino:551: warning: control reaches end of non-void function
dürfte aber nicht die ursache für den o.g. fehler sein.
8  International / Deutsch / arduino als programmer für atmega8 on: December 21, 2012, 02:44:34 pm
Hallo,
ich habe ein paar atmega 8-16pu gekauft, um ein paar arduinoprojekte auf diesen laufen lassen. Ich habe allerdings keinen programmer, also habe ich nach diesem tutorial  den atmega an meinen arduino (uno mit m328) angeschlossen. Wenn ich jetzt
Code:
C:\...\avrdude.exe -P COM8 -b 19200 -c avrisp -p m8 -n
aufrufe, gibt es folgenden fehler:
Code:
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes!  Invalid device signature.

also die verbindungen geprüft, stimmt aber alles. ich habe auch einen anderen atmega8, einen anderen quarz benutzt, die baudrate verändert, reset und gnd beim arduino mit nem kondensator (10uF) kurzgeschlossen - ohne ergebnis.

hat einer eine ahnung, wie ich das zum laufen bringe? liegt es vielleicht an dem -c avrisp? ich habe zwar als programmer avrisp ausgewählt, aber muss ich noch dazu sagen, dass ich einen arduino benutze?
9  International / Deutsch / Re: Türschaltung mit Arduino und RFID on: November 15, 2012, 06:32:01 pm
dankeschön für die antworten! es klappt jetzt. hab die loop abgeändert:

Code:
unsigned long time = millis();

void loop()
{
  if ( (millis()-time) > 1000)
  {
    applicant = getTag();
    //Serial.println(applicant);
   
    if (checkTag(applicant))
      digitalWrite(doorLock, HIGH);
    else
      digitalWrite(doorLock, LOW);
   
    time = millis();
  }
}

mehr oder weniger so, wie uwe das vorgeschlagen hat.
zu der Stringklasse: inwiefern hat die ein speicherleck? und kann ich den speicher nicht wieder freigeben? hat schon jemand eine dichte Stringklasse implementiert? wäre schön, wenn ich die einfach benutzen könnte, sonst muss ich ja auch die substringmethode umschreiben usw...
10  International / Deutsch / Türschaltung mit Arduino und RFID on: November 14, 2012, 06:28:45 pm
Hallo,

ich habe mir vor ein paar Tagen einen Arduino und ein RFID-Readermodul gekauft, um damit eine Tür zu öffnen/schließen.
Mit SoftwareSerial bekomme ich die Verbindung zwischen Arduino und Reader hin, wenn das richtige Tag vor den Reader gehalten wird, dann schreibt der Arduino den Port 13 2 Sekunden lang auf HIGH, dann wieder LOW.
hier mal der code:
Code:
#include <SoftwareSerial.h>

//Kommunikation mit der RFID-Platine
SoftwareSerial rfid = SoftwareSerial(2,6);

//Output zur Türschaltung
byte doorLock = 13;

void setup()
{
  //Pins
  pinMode(doorLock, OUTPUT);
  
  //Serials  
  //Serial.begin(9600);
  //Serial.println("Serial ready");
  
  rfid.begin(9600);
  //Serial.println("RFID ready");
}

//Tags mit Zugangsberechtigung
String tags[] = {"50008F1234D8","5100ABCDEF29","5100FEE1234A"};
int numberOfTags = 3;


//Zu prüfender Tag
String applicant;

void loop()
{
  applicant = getTag();
  //
  
  if (applicant.length() == 12)
  {
    //Serial.println(applicant);
    if (checkTag(applicant) == true)
    {
      digitalWrite(doorLock, HIGH);
      //Serial.println("Access granted");
      delay(2000);      
      digitalWrite(doorLock, LOW);
    }
    else { /*Serial.println("Access denied")*/;}
  }
  
  applicant = "";
}


//Tag-ID auslesen, falls möglich
String getTag()
{
  char c;
  String tag;
  while(rfid.available()>0)
  {
    c=rfid.read();
    tag += c;  
  }
  tag = tag.substring(1,13);
  delay(30);
  return(tag);
  
}

//Hat der Tag Zugangsberechtigung?
boolean checkTag(String applicant)
{
  for(int i = 0; i < numberOfTags; i++)
  {
    if (applicant == tags[i])
      return (true);
  }
  return (false);
}

Das ganze hat folgenden Haken: in der Methode getTag() (ziemlich am Ende) musste ich eine verzögerung von 30ms einbauen, sonst klappt es irgendwie nicht (der reader scheint das tag nicht schnell genug lesen zu können... oder liegts vielleicht an der seriellen Verbindung??). Das führt dazu, dass die Tür (hängt über nen transistor an pin 13) 2 sekunden aufgeht, dann 30ms zu ist usw., was natürlich stört.
Weiß jemand, wie ich diese delay da rauskriegen könnte?

Vielen Dank schon mal für alle Antworten smiley
Pages: [1]