Recent Posts

Pages: [1] 2 3 ... 10
1
Deutsch / Mit Adafruit Neopixel laufende...
Last post by donvita - Today at 10:58 am
Servus,

für ein privates Projekt möchte ich auf einem 180 LED's langem Streifen drei unterteilte (jeweils 31 LED's lange) Blöcke programmieren. Diese sollen mit einer bestimmten Geschwindigkeit immer wieder in einer Richtung durch den Streifen laufen. Außerdem sollen die Blöcke an sich in ihrer Helligkeit abgestuft sein, d.h. die Helligkeit soll zur Mitte hin zunehmen und nach außen gleichmäßig abnehmen. Optisch soll so eine Art ,,Lichtwelle" entstehen.

Ich habe leider noch keinen vernünftigen Sketch selbst erstellt, da ich selbst noch nicht viel mit dem Arduino gearbeitet habe und somit auch auf keinen vernünftigen Ansatz komme.

Vielen Dank schonmal im voraus! :)

LG
3
Project Guidance / Re: Powering up arduino
Last post by shevaar - Today at 10:57 am
Quick update. I tried to connect to the arduino (at the 5v pin) a 1.5v battery. Now I have that the pow led on the arduino is on at all time, even though the arduino only turns on when i use both my 3.7v and my 1.5v batteries.

I find this a rather unelegant solution, but for now it works, so I wanted to ask you guys:

If I leave the 1.5v battery always attached to the 5v and GND pins, how fast will it discharge? Is it a solution worth considering or you guys think that I will have to change battery every other day?

I think that 1.5v are barely enough to power up the POW led, which does not fully turn on, and thus it seem to me like it could stay on "forever", but I have no experience in this. Do you think it would be better to add a second switch that is used only to turn on the arduino, and then let it be powered with the 3.7v battery?
4
Le bar / Re: Besoin d'avis sur un proje...
Last post by trimarco232 - Today at 10:57 am
(...)
si tu veux avoir "une vraie mesure", il faut prendre une "longue" plage et diviser par le nombre de bits reçus.
exemple : si 100 bits durent 868µs, 1 seul vaudra bien 8.68, même si la résolution de l'analyseur n'est que de 4µs.
ça c'est risqué ; on ne sait pas le temps mort entre 2 mots, si le microprocesseur en profite pour réfléchir un peu ta mesure sera fausse
par contre, si tu mesures sur 10 bits, start et stop compris, tu auras une précision + que suffisante, et il te suffira de diviser par 10 ...
5
I hope packetBuffer is a char*.

Post code.
Post error messages.
Code: [Select]
char packetBuffer[256]; //buffer to hold incoming packet
Code: [Select]
unsigned char tableID;

It is quite a project, so please find code attached.
This is the compile error:

invalid conversion from 'char*' to 'unsigned char' [-fpermissive]

6
Deutsch / Re: Transistor steuerung einer...
Last post by flitzpiepe346 - Today at 10:54 am
siehe https://forum.arduino.cc/index.php?topic=706835.msg4750020#msg4750020
Grüße uWe
Vielen, vielen Dank ich habe es jetzt so gemacht und geschafft und auch danke für die übrigen Tipps! Nur eine Frage habe ich noch: Gibt es für diese Schaltung von PNP und NPN Transistoren auch einen IC damit man es noch kompakter bauen kann?

Gruß Moritz
7
Programming Questions / HTTP non blocking requests
Last post by tuloski - Today at 10:54 am
Hi,
I'm using HttpClient library to make http requests with MKR modules, but it seems that every request is BLOCKING, which is totally nuts since it can easily block everything for multiple seconds.
I don't know if it is due to the HTTP library itself or the underlying libraries (GSM, GPRS, WiFi101, ...) but do you have any idea or alternative library to make async http requests?
8
here i my code that parses the packets, please i need an expert opinion if there are any serious errors in this,

Code: [Select]
void recvPacket() {
  int packetSize = Udp.parsePacket();
  if (packetSize) {
    char incomingPacket[2500];
    int len = Udp.read(incomingPacket, 2500);
    char verifyStart[7]; //NODEC1 plus null
    char verifyEnd[7]; //C1NODE plus null
    //char _data[5];
    strncpy (verifyStart, (char*)incomingPacket, 6 );//6 bytes
    strncpy (verifyEnd, (char *)incomingPacket + len - 6 , 6 );//6 bytes
    verifyStart[6] = '\0'; //null terminate
    verifyEnd[6] = '\0'; //null terminate
    if (strcmp(verifyStart, "UVPAIR") == 0 && strcmp(verifyEnd, "RIAPVU") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.UV_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.UV_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("UV Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.UV_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("no need to update uv address");
        }
      }
    }


    if (strcmp(verifyStart, "T1PAIR") == 0 && strcmp(verifyEnd, "1TAPVU") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.T1_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.T1_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("T1 Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.T1_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update temp 1  address");
        }
      }
    }

    if (strcmp(verifyStart, "T2PAIR") == 0 && strcmp(verifyEnd, "2TAPVU") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.T2_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.T2_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("T2 Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.T2_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update temp 2  address");
        }
      }
    }
    if (strcmp(verifyStart, "T3PAIR") == 0 && strcmp(verifyEnd, "3TAPVU") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.T3_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.T3_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("T3 Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.T3_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update temp 3  address");
        }
      }
    }
    if (strcmp(verifyStart, "T4PAIR") == 0 && strcmp(verifyEnd, "4TAPVU") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.T4_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.T4_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("T4 Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.T4_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update temp 4  address");
        }
      }
    }
    if (strcmp(verifyStart, "TM1PAI") == 0 && strcmp(verifyEnd, "IAP1MT") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.TM1_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.TM1_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("TM1 Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.TM1_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update tm2 address");
        }
      }
    }
    if (strcmp(verifyStart, "TM2PAI") == 0 && strcmp(verifyEnd, "IAP2MT") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.TM2_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.TM2_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("TM2 Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.TM2_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update tm1 address");
        }
      }
    }

    if (strcmp(verifyStart, "C021AI") == 0 && strcmp(verifyEnd, "IA120C") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.C021_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.C021_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("C021 Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.C021_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update C02 1 address");
        }
      }
    }

    if (strcmp(verifyStart, "WM1PAI") == 0 && strcmp(verifyEnd, "IAP1MW") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.WM1_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.WM1_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("WM1 Paired!");
          for (byte j = 0; j < 4; j++) {
            Serial.print(_EEPROM.WM1_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update WM1 address");
        }
      }
    }

    if (strcmp(verifyStart, "PH1PAI") == 0 && strcmp(verifyEnd, "IAP1HP") == 0) {
      IPAddress sender_ip = Udp.remoteIP();
      if (memcmp(_EEPROM.PHM1_IP, sender_ip, 4) != 0) {
        for (byte j = 0; j < 4; j++) {
          _EEPROM.PHM1_IP[j] = sender_ip[j];
        }
        if (debugPairing) {
          Serial.println("PHM1 Paired!");
          for (byte j = 0; j < 4; j++)
          {
            Serial.print(_EEPROM.PHM1_IP[j]);
          }
          Serial.println();
        }
        _writeEEPROM();
      } else {
        if (debugPairing) {
          Serial.println("No need to update PHM1 address");
        }
      }
    }
  }
}



i fixed the system_password string in the main ino file. i changed it to,

 sprintf(_EEPROM.system_password, "%s", "password");

also when i wait to call pairMe() untill a few seconds after startup i wont see any garbled serial characters. but every now and then the program crashes and i still see some garbled characters while its running.
9
Deutsch / Re: Counter und Schrittmotor
Last post by Draht - Today at 10:53 am
@agmue vielen Dank für den Sketch ich muss den noch studieren um ihn zu verstehen - bin da nicht so schnell.
Nur zur Info: Es gibt bei der Uhr keine Minuten Schritte, sondern nur 5 Minutenschritte und Stundenschritte.
10
Français / Re: Alternative à delay() (Fon...
Last post by pepit - Today at 10:52 am
Merci, remarque constructive! :)

L'humanité à toujours avancé grâce à ceux qui sortent des sentiers battu. Le ténor installé devrais essayer de comprendre la démarche semblant maladroite de l'arriviste au lieu de lui dire qu'il est trop bête pour continuer, ceci le conforterai dans sa position de ténor.

Biggil: Tes connaissances et capacités en programmation surclasse probablement la moyenne dont je ne fait certainement même pas partie, mais ça ne t'autorise pas a me tenir des propos vexant.
"ta solution est délirante  ... tu n'iras pas bien loin" etc...
Pages: [1] 2 3 ... 10