Recent Posts

Pages: [1] 2 3 ... 10
1
suggestions before buying the third servo please ?
Try operating the servo for a while without load. And gradually increase the amount of load on the servo and keep monitoring the temperature.
2

STILL CANT GET IT TO WORK PLEASE HELP ME

Code: [Select]
#include <IRremote.h>

int led_case[] = {0, 0, 0, 0, 0};

decode_results output;

#define code1  26775
#define code2  39015
#define code3  45135
#define code4  12495

void setup()
{
  Serial.begin(9600);
 
  IRrecv PORTB=0b00000001;
  DDRD = 0b11110000;
  DDRB = 0b00000000;
  PORTB = 0b00000001;
}



void loop()
{
  if (IRrecv.decode(&output))
  {
    unsigned int value = output.value;
    switch (value)
    {
      case code1:
        if (led_case[1] == 1)
        {
          PORTD = 0b00000000;
          led_case[1] = 0;
        }
        else
        {
          PORTD = 0b10000000;
          led_case[1] = 1;
        }
        break;
      case code2:
        if (led_case[2] == 1)
        {
          PORTD = 0b00000000;
          led_case[2] = 0;
        }
        else
        {
          PORTD = 0b01000000;
          led_case[2] = 1;
        }
        break;
      case code3:
        if (led_case[3] == 1)
        {
          PORTD = 0b00000000;
          led_case[3] = 0;
        }
        else
        {
          PORTD = 0b00100000;
          led_case[3] = 1;
        }
        break;
      case code4:
        if (led_case[4] == 1)
        {
          PORTD = 0b00000000;
          led_case[4] = 0;
        }
        else
        {
          PORTD = 0b00010000;
          led_case[4] = 1;
        }
        break;
    }
    Serial.println(value);
    PORTB.resume();
  }
}[code]
3
Just to verify, you are using an RS232 converter between the arduino and the level, and the grounds of the level and arduino are tied together?


Hi David


Yes I've got an RS232 in between the eLevel, I've just double checked and found there was no ground connection at the eLevel which was very strange the wire had broken in the heat shrink  :o .

I've now corrected this, Your code still gives no output on either but using the second code this is what I now get which is looking more like what the data sheet say apart from I get DD at the end

Code: [Select]
EE 25 83 EE DE 1 4 DD
EE 25 83 EE DE 1 4 DD
EE 25 84 EE DE 1 4 DD
EE 25 85 EE DE 1 4 DD
EE 25 84 EE DE 1 4 DD
EE 25 84 EE DE 1 4 DD
EE 25 84 EE DE 1 4 DD
EE 25 84 EE DE 1 4 DD
EE 25 85 EE DE 1 4 DD
EE 25 87 EE DE 1 4 DD
EE 25 88 EE DE 1 4 DD
EE 25 89 EE DE 1 4 DD
EE 25 90 EE DE 1 5 DD
EE 25 90 EE DE 1 5 DD
EE 25 89 EE DE 1 5 DD
EE 25 89 EE DE FF 9 DD
4
Generale / Re: istallazione driver
Last post by uwefed - Today at 12:19 am
Probabilmente la scheda non monta un ATmega16U2 come adattatore USB ma un CH340. Devi scaricarti e installare il driver per il CH340.
Ciao Uwe
5
Software / Re: pressione di un tasto sul ...
Last post by Maurotec - Today at 12:11 am
Per quelle operazioni che non richiedono interattivita tramite telecomando puoi usare lo schema attuale, dove nel case: richiami una funzione al cui interno c'è un ciclo. Mentre quando è richiesta una interazione tramite telecomando (come nel caso in cui vuoi fermare ciò che hai iniziato) lo schema attuale non funziona.

Ci sono vari modi di affrontare il problema anche molto complessi e creativi, il nocciolo è che se da dentro il loop avvii un funzione che restituisce il controllo al chiamante (loop()) solo dopo avere terminato un ciclo di operazioni queste non possono essere fermate dal chiamante (loop()). Infatti durante il tempo che la funzioni impiega per svolgere il compito che gli hai dato non puoi interaggire tramite telecomando.

Se la soluzione l'avessi semplice te la mostrerei ma al momento non la ho, vedo anche che usi i for per inviare gli impulsi ad un motore passo passo e questo monopolizza l'uso della CPU rendendo impossibile interaggire tramite telecomando.

Una soluzione richiede una seconda scheda programmata per muovere il motore passo passo, comandata dalla prima scheda (attuale) che gestisce il telecomando e altro, quando ricevi dal telecomando il codice per attivare rotazione_indietro(), questa invia un comando del tipo: muovi indietro di tot passi e termina rapidamente resituendo il controllo al chiamante. Se da telecomando arriva il segnale FERMATUTTO, sollevi un pin collegato tra le due schede e ciò ferma il comando che gli avevi dato prima.

PS:Un modo differente c'è di sicuro ma è da verificare se funziona e coinvolge cose come i Timer Hardware e gli interrupt a questo legati e attivabili.

Ciao.
6
I have an arduino uno which is connected to a load cell and an esp8266 to create in the end a project which will send a notification when a specific weight is exceeded. Whenever i upload the my code the text I get in the serial monitor is just repeated : |?

The code I am using is:

#include <UnoWiFiDevEd.h>

#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>

#include <HX711.h>


String deviceId = "v2B3F20B7DF9815A";
const char* logServer = "api.pushingbox.com";

const char* ssid = "Sarkaar_Wireless";
const char* password = "Garima3007$";

void setup()
{
    Serial.begin(74880);

  sendNotification("Hello World from ESP8266!");
}

void sendNotification(String message){

  Serial.println("- connecting to Home Router SID: " + String(ssid));
 
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println();
  Serial.println("- succesfully connected");
  Serial.println("- starting client");
 
  WiFiClient client;

  Serial.println("- connecting to pushing server: " + String(logServer));
  if (client.connect(logServer, 80)) {
    Serial.println("- succesfully connected");
   
    String postStr = "devid=";
    postStr += String(deviceId);
    postStr += "&message_parameter=";
    postStr += String(message);
    postStr += "\r\n\r\n";
   
    Serial.println("- sending data...");
   
    client.print("POST /pushingbox HTTP/1.1\n");
    client.print("Host: api.pushingbox.com\n");
    client.print("Connection: close\n");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(postStr.length());
    client.print("\n\n");
    client.print(postStr);
  }
  client.stop();
  Serial.println("- stopping the client");
  Serial.begin(9600);
  pinMode(A1, INPUT);
  pinMode(A0, OUTPUT);
HX711 loadcell;

loadcell.set_scale();
loadcell.tare();
loadcell.get_units(10);
Serial.println(loadcell.get_units(10));
}

void loop()
{
HX711 loadcell;

const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;


const long LOADCELL_OFFSET = 50682624;
const long LOADCELL_DIVIDER = 5895655;


loadcell.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
loadcell.set_scale(LOADCELL_DIVIDER);
loadcell.set_offset(LOADCELL_OFFSET);

Serial.print("Weight: ");
Serial.println(loadcell.get_units(10), 2);

Any suggestions as to why I am getting garbage in the serial monitor and any wrong bits in my code?

7
Programming Questions / Re: Why does this method use m...
Last post by dougp - Apr 20, 2019, 11:55 pm
Compiling this sketch uses 9 bytes of global memory, exactly the same as a blank one.
Compiler (IDE v1.8.2) gives this error

Code: [Select]

template<>
void setPinModes<0> (const int* pinArray, byte modeToSet)
//
//               ^

//exit status 1
//expected initializer before '<' token



Possibly a version issue?
8
Programming Questions / Re: Weather data
Last post by PaulRB - Apr 20, 2019, 11:53 pm
Also try putting client.stop() at the end of the function.
9
Programming Questions / Re: Reading 8 Bytes of data fr...
Last post by david_2018 - Apr 20, 2019, 11:52 pm
Just to verify, you are using an RS232 converter between the arduino and the level, and the grounds of the level and arduino are tied together?

10
Programming Questions / Re: Arduino metronome, blinks ...
Last post by UKHeliBob - Apr 20, 2019, 11:51 pm
Quote
I'm not sure how I would see the print output.
Using Serial.print() and the Serial Monitor would be the obvious way
Pages: [1] 2 3 ... 10