PC'den Time'ı arduino ile eşzamanlamak istiyorum. Zaman kütüphanelerini kullanıyorum ama işe yaramıyor.Bilgisayar saati USB üzerinden Arduino ile senkronize edilemiyor
Arduino'yu bilgisayarımdaki ile aynı zamana nasıl alabilirim? Şu anda bir mac kullanıyorum.
Onların dokümantasyon diyor ki:
TZ_adjust=-8; echo T$(($(date +%s)+6060$TZ_adjust)) > /dev/tty.usbserial-A8008pym
Ben terminali
>export TZ_adjust=-8; echo T$(($(date +%s)+6060$TZ_adjust)) > /dev/tty.usbmodemfd131
denedi: Unix sisteminde
, bu kabuk komutu ile zaman ayarlayabilirsinizve İzin reddedildi.
Neyi yanlış yapıyorum? Bilgisayarımla arduino'daki saati senkronize etmenin daha basit bir yolu var mı?
#include <Time.h> #define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by unix time_t as ten ascii digits #define TIME_HEADER 'T' // Header tag for serial time sync message #define TIME_REQUEST 7 // ASCII bell character requests a time sync message void setup() { Serial.begin(9600); setSyncProvider(requestSync); //set function to call when sync required Serial.println("Waiting for sync message"); } void loop(){ if(Serial.available()) { processSyncMessage(); } if(timeStatus()!= timeNotSet) { digitalWrite(13,timeStatus() == timeSet); // on if synced, off if needs refresh digitalClockDisplay(); } delay(1000); } void digitalClockDisplay(){ // digital clock display of the time Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.print(" "); Serial.print(day()); Serial.print(" "); Serial.print(month()); Serial.print(" "); Serial.print(year()); Serial.println(); } void printDigits(int digits){ // utility function for digital clock display: prints preceding colon and leading 0 Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); } void processSyncMessage() { // if time sync available from serial port, update time and return true while(Serial.available() >= TIME_MSG_LEN){ // time message consists of a header and ten ascii digits char c = Serial.read() ; Serial.print(c); if(c == TIME_HEADER) { time_t pctime = 0; for(int i=0; i < TIME_MSG_LEN -1; i++){ c = Serial.read(); if(c >= '0' && c <= '9'){ pctime = (10 * pctime) + (c - '0') ; // convert digits to a number } } setTime(pctime); // Sync Arduino clock to the time received on the serial port } } } time_t requestSync() { Serial.print(TIME_REQUEST,BYTE); return 0; // the time will be sent later in response to serial mesg }
"ve alıyorum" ... ne? – sachleen
@sachleen İzin reddedildi. Gözetim için özür dilerim –
Sudo'nun komutunun önünde deneyebilir misin? –