Show Posts
Pages: 1 ... 81 82 [83] 84 85 ... 205
1231  Using Arduino / Programming Questions / Re: rpm control program on: August 29, 2013, 10:44:53 am
I read
Quote
On most Arduino boards (those with the ATmega168 or ATmega328), this function works on pins 3, 5, 6, 9, 10, and 11. On the Arduino Mega, it works on pins 2 through 13. Older Arduino boards with an ATmega8 only support analogWrite() on pins 9, 10, and 11.


My sample writes to the (digital) pin you defined in m2.

And I don't see your problem, obviously.
1232  Using Arduino / Programming Questions / Re: Software system development procedure question on: August 29, 2013, 10:35:08 am
As a result of this approach I find a need to declare many global variables
I have noticed the same thing. If there is a better way, I don't know what it is, seems to come with the territory for microcontrollers.

It's just a nasty habit to solve bypass the issue that some variable is "not declared in this scope".
It does not "come with the microcontrollers", but there you get away with it, as their memory space is pretty small, so you are able to know all variables globally.

The better way is to encapsulate data as class properties and go the c++ route.

And keep local variables local, first of all.
1233  Using Arduino / Programming Questions / Re: rpm control program on: August 29, 2013, 10:26:31 am
Perhaps you read about analogWrite and then think about how you want to control the speed of your motor...
1234  Using Arduino / Programming Questions / Re: Is there any AES library supports 'unsigned long' type.How to convert the type on: August 29, 2013, 10:24:39 am
So simply write aesFun() yourself, using the libraries you found.

And keep in mind, it takes a 4 bytes binary array as parameter, not a zero delimited char*

Have Fun!
1235  Using Arduino / Programming Questions / Re: Software system development procedure question on: August 29, 2013, 10:05:08 am
Quote
If it were my choice I would be using an AB PLC for this task! Instead, I am learning the Arduino.
If you know those PLC's ( asssuming a patent attorney is more technician than laywer ) and still can get those you're familiar with, including the programming environment, try convince your boss. We're just talking about a little piece of electronics 5x7 cm, nothing more. It does not really affect the cost of the whole project, if that piece costs 5$ (for the atmega chip) or 30$ (an Arduino), as you need much more: a reliable system.

If you want to have fun with a nice hobby project, there's nothing but Arduino, with its billions thousands of free sample sketches, and cheap add-on shields, however.
1236  Using Arduino / Programming Questions / Re: rpm control program on: August 29, 2013, 09:38:37 am
You're looking for an "else" :

Code:
if ( val > 800 )
{
   analogWrite(m1, 0);      // stop
   digitalWrite(m2,HIGH); // fan on
}
if (val < 780)
{  
  digitalWrite(m2, LOW); // fan off
  if ( val > 400 )
  {
      analogWrite(m1, 100); // slow
  }
  else if (val > 200 )
  {
      analogWrite(m1, 200); // medium
  }
  else
  {
      analogWrite(m1, 300); // full speed
  }
}

 I also added a sample hysteresis : if value is between 780 and 800 there's no change: if fan wan running, it keep running; if its off it stays off until val rises even more.
1237  Using Arduino / Programming Questions / Re: Breaking down a string won't work right on: August 29, 2013, 08:18:15 am
Ok, so replacing that with
Code:
if(strcmp(Command[0],"SWITCH")) {
should do the trick?
Almost.
Code:
char * Command[] = {"SWITCH", "1", "3"};
// ...
  if(strcmp(Command[0],"SWITCH") == 0) {
    char* p1 = Command[1];
    int i = atoi(p1);  // string to int
    Serial.print("Found SWITCH;");Serial.print(i);
  }


strcmp() returns 0 when equal

Edit: finding bugs even before compiling is a bad sign.
1238  International / Deutsch / Re: I2C RTC DS1307 verliert wieder die Zeit/Datum on: August 29, 2013, 07:54:33 am
Auch während
165.165.2165 45:165:85 Uhr
kommt/käme  ?

( Der Scanner wiederholt  alle 5 Sek. einen Durchlauf  )

 
Dann wird es allmählich wirklich merkwürdig ...
1239  International / Deutsch / Re: I2C RTC DS1307 verliert wieder die Zeit/Datum on: August 29, 2013, 07:36:34 am

http://playground.arduino.cc/Main/I2cScanner

Quote
This very simple sketch scans the I2C-bus for devices. If a device is found it reports that to the Arduino serial monitor.
This sketch is the first step to get the I2C communication working.


Sollte dir die RTC und den EEPROM melden ... und hat nichts mit der Batterie-Pufferung zu tun
1240  International / Deutsch / Re: I2C RTC DS1307 verliert wieder die Zeit/Datum on: August 29, 2013, 07:05:30 am
Noch was Generelles:

Hat dein Modul Pullup-Widerstände drauf ?
I²C braucht sowas: Je ein Widerstand zwischen Vcc und SCL / SDA, Wert ca. einige kOhm.

Nachtrag:
Ooops, hast ja im ersten Post schon einen Link mitgeschickt, sollte eigentlich ...

Was sagt denn der I2CScanner Sketch ?
Findet der DS1307 RTC ( 0x68 )  und 24C32 EEPROM ( ??? ) ?
Oder erst nachdem x Minuten nach Vcc high alles ok ist ? 
1241  International / Deutsch / Re: Compiler Fehler - warum ?? on: August 29, 2013, 04:38:46 am
Quote
Dumme Frage: Wie prüfe ich das
Am einfachsten schaust du erstmal, wie groß der Sketch beim Übersetzen ist:

Quote
Binäre Sketchgröße: 466 Bytes (von einem Maximum von 32.256 Bytes)
Da ist kein F-Makro drin, und in einem UNO hast du eh nie mehr als 64 kB  smiley-wink
1242  International / Deutsch / Re: I2C RTC DS1307 verliert wieder die Zeit/Datum on: August 29, 2013, 04:32:55 am
Das überzeugt mich auch: wenn von allein irgendwann die richtige Zeit von der RTC kommt, ohne dass sie direkt vorher gesetzt wurde, ist die Batteriepufferung in Ordnung, und der Fehler liegt eher irgendwo in der I²C Kommunikation.

Bis du einen anderen Uhrenmodul hast (Die chinesischen für 1,50 Euro(incl. Versand) hängen halt schon mal 6 Wochen im Zoll, bis sie befreit werden) ,
kannst du ja mal in jurs' Demo im 10 -Sekundenzyklus das Folgende einfügen:

Code:
 Wire.beginTransmission(RTC_I2C_ADDRESS);
  boolean test = Wire.write(0);
  Wire.endTransmission();
  if (test == false) Serial.println(" I2C Problem mit RTC");

Die normale Library prüft den Erfolg nicht. Wozu auch, bei den begrenzten Möglichkeiten zur Fehler-Reaktion und -Behebung ...
1243  Using Arduino / General Electronics / Re: Setting up an arduino controlled relay causes main short circuit on: August 29, 2013, 03:11:02 am
Quote
Pictures always help

I  barely see a difference between N and PE in your picture smiley-wink
Yes, there is a small dot, indicating that PE is connected to consumers casing. But without a word, it's hard to see that this is the main info of your picture.

N runs "back" all the unbalanced current from L, but there should not be any current on PE.

Are there no ground fault circuit interrupters / residual current devicesin UK ?
Those nasty beasts punishing you for connecting PE and N ...
If there are, what's the correct term ?
1244  International / Deutsch / Re: Programm bleibt unerwartet stehen (Stepper Betrieb) on: August 28, 2013, 09:10:40 am
- Der Rückgabewert ist undefiniert, wenn EingabeTrue != true
- Du gehst davon aus, dass entweder gar keine, oder eine komplette Eingabe vorhanden ist ?
      Da hilft dein delay(5000), aber sicher ist das nicht.
- Inhalt == "!"  trifft nur zu, wenn Inhalt ein String ist und '!' das erste und einzige Zeichen ist
- Dein Codeschnipsel enthält keine Variablendefinitionen, das erschwert das Raten ...

Ich vermute mal, '!' soll ein Kennzeichen "Zahl zu Ende, Eingabe fertig" sein.
Die Funktion sollte -- möglichst ohne delay -- lesen was da ist und Eingabezahl weiterberechnen, und sobald ein '!' gelesen wurde, EingabeTrue setzen.

Den String Inhalt und Inhalt.Concat(EingabeZeichen) brauchst du nicht, da jedes Zeichen sofort verarbeitet wird.



Warum du eine NotausAbfrage zwischen 2 Zeichen machst, aber 5 sec Delay ( ohne NotausAbfrage  ), verstehe ich nicht.
Ohne Delay musst du dir nur merken, wann du das letzte Mal      "Eingabe erforderlich"   ausgegeben hast, damit das nicht zu oft kommt.

NotausAbfrage(); kann dann nach loop, wo es hingehört , und mehrmals pro millisekunde drankommt.
StringAuslesen() könnte sich auch auf das Lesen eines einzelnen Zeichens beschränken ( oder gar keins ), dann wäre NotausAbfrage() noch häufiger dran.


Quote
Bis dahin bleibe ich dabei, dass ich Dinge nachlese,nachfrage und dann ausprobiere.

Das ist gut. Falls du meine Bemerkung über c++ - Programmierer als Kritik an dir aufgefasst hast, war das ein Missverständnis.
Es war eine allgemeine Warnung, vor c und dem c - Compiler, der nicht immer so hilfreich ist, wie man sich das gerne wünschte.
Bei mir ist gelegentilch ein leicht ranziger Ton hörbar. Das sollte keinen stören smiley-wink
1245  International / Deutsch / Re: Material Frage on: August 28, 2013, 07:51:04 am
Das gilt umso mehr, wenn du demnächst statt mit kompletten Arduinos mit "standalone atmega328 auf Lochraster" spielst arbeitest.
( Da hast du übrigens auch die Option 8MHz(intern) ohne externen Quarz, was allerdings einen anderen -- oder gar keinen -- Bootloader erfordert. )
Pages: 1 ... 81 82 [83] 84 85 ... 205