Go Down

Topic: "RISOLTO" trasferire un unsigned int via seriale (Read 1 time) previous topic - next topic

paulus1969

Certo, dovrebbe regolarsi di conseguenza anche nell'invio.

cepics

#16
Oct 17, 2016, 12:33 pm Last Edit: Oct 17, 2016, 01:39 pm by cepics
Bene, adesso, dopo averlo fatto così,
puoi anche dare un'occhiata qui: parseint
interessante la parseint... (provvederò)

cmq oggi non vuole funzionare ..
sembra ci sia un problema di trasmissione/ricezione
funzionava tutto bene prima di instalare i driver per cinoduino (CH340).

gli xbee chattano ancora bene in xctu

il monitor seriale del rx non da nulla e quando lo apro il display si illumina per un attimo


os x lion

tx

hc-sr04
arduino micro
xbee s1 end device (no shield)

Code: [Select]

#include <SoftwareSerial.h>
#include <NewPing.h>

#define trigger_Port 9
#define echo_Port 8

SoftwareSerial Seriale(4,7); //RX,TX

unsigned int durata;
NewPing sonar(trigger_Port, echo_Port);

void setup()
{
  Serial.begin(9600);
  Seriale.begin(9600);
}

void loop() {

  delay(100);

  durata = sonar.ping_median(5);
  Seriale.write(lowByte(durata));  // trasmette il byte meno significativo
  Seriale.write(highByte(durata)); // trasmette il byte più significativo

  Serial.println(durata);

}


rx

xbee s1 coordinator (no shield)
arduino uno (il guaio è cominciato quando l'ho voluto sostituire con il cino)
serial four digit 7 seg display (sparkfun)
potenziometro

Code: [Select]


#include <SoftwareSerial.h>
SoftwareSerial Serial7Segment(8,9); //RX pin, TX pin

long cm;
int input;

int sensorPin = A0;    // select the input pin for the potentiometer
int sensorValue = 0;  // variable to store the value coming from the sensor
byte x;


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


  Serial7Segment.begin(9600); //Talk to the Serial7Segment at 9600 bps
  Serial7Segment.write('v'); //Reset the display - this forces the cursor to return to the beginning of the display
  Serial7Segment.print("DAJE");
  delay(5000);
  Serial7Segment.write('v'); //Reset the display - this forces the cursor to return to the beginning of the display

}

void loop()
{
  if (Serial.available() > 1)
  {

    sensorValue = analogRead(sensorPin);
    x = sensorValue / 4;

    input = Serial.read();          // riceve byte basso
    input+= (int)Serial.read()<<8;  // riceve byte alto
    Serial.println(input);

    cm = ((input/2) / 29.1);

    Serial7Segment.write(0x7A);  // Brightness control command
    Serial7Segment.write((byte) x);  // 0 is dimmest, 255 is brightest

    Serial7Segment.write(0x79);  // Decimal, colon, apostrophe control command
    Serial7Segment.write(0x01);
    Serial7Segment.print(cm);

  }
  delay(100);
}



il display si inizializza (mi dice "DAJE"), poi si spegne e fa un lampo quando lancio il serial monitor

idee?

ciao

gpb01

Mmmm ... ma hai installato i driver per "macOS Sierra" su "OS X Lion" ? O ... dove hai preso quelli per Lion ?

Guglielmo
Search is Your friend ... or I am Your enemy !

cepics

#18
Oct 17, 2016, 01:22 pm Last Edit: Oct 17, 2016, 01:30 pm by cepics

Mmmm ... ma hai installato i driver per "macOS Sierra" su "OS X Lion" ? O ... dove hai preso quelli per Lion ?

Guglielmo
dal tuo link

http://blog.codebender.cc/2015/06/12/new-stuff-updated-mac-drivers/

dice: "We released our new Mac drivers package, which includes the drivers for the FTDI chip for Yosemite. No more searching, downloading and installing is needed, and furthermore they work with all OSX for Mac. ....... We talked to WCH, the manufacturer of CH340G chip which is a great new alternative to FTDI,  and we created a new driver that supports the CH340G chip on Yosemite (a world first!) and all OSX for Mac."

gpb01

Aha ... ok ... quindi dovrebbe andare.

Se apri l'IDE di Arduino, vedi tra le porte la porta del CH340 ? Se SI ... allora non è un problema di driver ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up